WSL与rpi之间的ROS2通信

问题描述 投票:0回答:1

我已经在 WSL(从版本 2 更改为 1)和我的 rpi 中设置了 ROS2。 我检查了两个 ubuntu 都连接到同一网络,并且我可以通过 ssh 连接到 rpi,没有任何问题。 我什至还检查了简单的相互 ping 是否有效,并且它们相互 ping 得很好。

问题是,当我尝试从“demo_node_cpp talker”和侦听器示例创建节点时,它们似乎没有通信。 我已将 ROS_DOMAIN_ID 导出到两台计算机上的相同 ID,并在计算机上打开防火墙。如何让两个设备通过网络使用 ROS2 相互通信?

我检查了任何类型的调试选项,其中一个建议尝试“多播”(我对此一无所知)并尝试在计算机两侧进行 ros2 多播发送和接收。有趣的是,当我尝试在计算机上发送多播并在 rpi 上接收时,它工作正常并给出“Received from :: 'Hello World!'”作为验证。然而,相反,当 rpi 发送并且计算机接收时,会出现错误,最后显示“[Errno 92] 协议不可用”。 这是输出:

Traceback (most recent call last):
  File "/opt/ros/foxy/bin/ros2", line 11, in <module>
    load_entry_point('ros2cli==0.9.13', 'console_scripts', 'ros2')()
  File "/opt/ros/foxy/lib/python3.8/site-packages/ros2cli/cli.py", line 67, in main
    rc = extension.main(parser=parser, args=args)
  File "/opt/ros/foxy/lib/python3.8/site-packages/ros2multicast/command/multicast.py", line 37, in main
    return extension.main(args=args)
  File "/opt/ros/foxy/lib/python3.8/site-packages/ros2multicast/verb/receive.py", line 25, in main
    data, (host, port) = receive()
  File "/opt/ros/foxy/lib/python3.8/site-packages/ros2multicast/api/__init__.py", line 51, in receive
    s.setsockopt(socket.IPPROTO_IP, socket.IP_DROP_MEMBERSHIP, mreq)
OSError: [Errno 92] Protocol not available
raspberry-pi windows-subsystem-for-linux ros2
1个回答
0
投票

你知道问题出在哪里了吗?

© www.soinside.com 2019 - 2024. All rights reserved.