私は ROS2 を使い始めています (現在は alpha7 状態です)。このために、LAN 経由でルーターに接続された Raspberry Pi (Raspbian Jessie) と、WLAN 経由で同じルーターに接続されたホスト PC (Ubuntu Gnome 16.04) を使用して小規模なネットワークを構築します。ホスト内には、Debian Jessie がインストールされ、ブリッジ ネットワーク (wlp4s0) 経由で接続された (VirtualBox を使用する) いくつかの仮想マシンがあります。ping、sshおよびscpすべてのマシン (Rasp、ホスト、VM) 間で使用することもできます。
Rasp は VM に接続していませんが、VM は互いに接続していることがわかりました。したがって、VM 間でメッセージを送信できます。しかし、Rasp と VM の間のトーカー リスナー接続は機能しません。
この動作の理由を見つけるための提案を誰かに教えてもらえますか?
ソース (alpha7) のトーカーとリスナーを使用していくつかの調査を行います:
(すべての ros ユーザーは仮想マシン上にあります)
Raspberry Pi のトーカー
pi:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
pi:bin$ ./talker
> pi@192.168.1.40
> pi:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
> pi:bin$ ./listener > yes
> pi:bin$ ./listener__rmw_opensplice_cpp > yes
> pi:bin$ ./listener__rmw_fastrtps_cpp > yes after restarting talker
> pi:bin$ ./listener_best_effort > yes
> pi:bin$ ./listener_best_effort__rmw_opensplice_cpp > yes
> pi:bin$ ./listener_best_effort__rmw_fastrtps_cpp > yes
> ros@192.168.1.20
> ros:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
> ros:bin$ ./listener > no
> ros:bin$ ./listener__rmw_opensplice_cpp > no
> ros:bin$ ./listener__rmw_fastrtps_cpp > no
> ros:bin$ ./listener_best_effort > no
> ros:bin$ ./listener_best_effort__rmw_opensplice_cpp > no
> ros:bin$ ./listener_best_effort__rmw_fastrtps_cpp > no
pi:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
pi:bin$ ./talker__rmw_opensplice_cpp
> pi@192.168.1.40
> pi:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
> pi:bin$ ./listener > yes after restarting talker
> pi:bin$ ./listener__rmw_opensplice_cpp > yes
> pi:bin$ ./listener__rmw_fastrtps_cpp > no
> pi:bin$ ./listener_best_effort > yes
> pi:bin$ ./listener_best_effort__rmw_opensplice_cpp > yes
> pi:bin$ ./listener_best_effort__rmw_fastrtps_cpp > yes
> ros@192.168.1.20
> ros:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
> ros:bin$ ./listener > no
> ros:bin$ ./listener__rmw_opensplice_cpp > no
> ros:bin$ ./listener__rmw_fastrtps_cpp > no
> ros:bin$ ./listener_best_effort > no
> ros:bin$ ./listener_best_effort__rmw_opensplice_cpp > no
> ros:bin$ ./listener_best_effort__rmw_fastrtps_cpp > no
pi:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
pi:bin$ ./talker__rmw_fastrtps_cpp
> pi@192.168.1.40
> pi:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
> pi:bin$ ./listener > yes
> pi:bin$ ./listener__rmw_opensplice_cpp > yes
> pi:bin$ ./listener__rmw_fastrtps_cpp > yes after restarting talker
> pi:bin$ ./listener_best_effort > yes
> pi:bin$ ./listener_best_effort__rmw_opensplice_cpp > yes
> pi:bin$ ./listener_best_effort__rmw_fastrtps_cpp > yes
> ros@192.168.1.20
> ros:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
> ros:bin$ ./listener > no
> ros:bin$ ./listener__rmw_opensplice_cpp > no
> ros:bin$ ./listener__rmw_fastrtps_cpp > no
> ros:bin$ ./listener_best_effort > no
> ros:bin$ ./listener_best_effort__rmw_opensplice_cpp > no
> ros:bin$ ./listener_best_effort__rmw_fastrtps_cpp > no
仮想マシンのトーカー
ros@192.168.1.20
ros:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
ros:bin$ ./talker
> ros@192.168.1.21
> ros:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
> ros:bin$ ./listener > yes
> ros:bin$ ./listener__rmw_opensplice_cpp > yes
> ros:bin$ ./listener__rmw_fastrtps_cpp > yes after restarting talker
> ros:bin$ ./listener_best_effort > yes
> ros:bin$ ./listener_best_effort__rmw_opensplice_cpp > yes
> ros:bin$ ./listener_best_effort__rmw_fastrtps_cpp > yes
> pi@192.168.1.40
> pi:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
> pi:bin$ ./listener > no
> pi:bin$ ./listener__rmw_opensplice_cpp > no
> pi:bin$ ./listener__rmw_fastrtps_cpp > no
> pi:bin$ ./listener_best_effort > no
> pi:bin$ ./listener_best_effort__rmw_opensplice_cpp > no
> pi:bin$ ./listener_best_effort__rmw_fastrtps_cpp > no
ros@192.168.1.20
ros:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
ros:bin$ ./talker__rmw_opensplice_cpp
> ros@192.168.1.21
> ros:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
> ros:bin$ ./listener > yes
> ros:bin$ ./listener__rmw_opensplice_cpp > yes
> ros:bin$ ./listener__rmw_fastrtps_cpp > yes
> ros:bin$ ./listener_best_effort > yes
> ros:bin$ ./listener_best_effort__rmw_opensplice_cpp > yes
> ros:bin$ ./listener_best_effort__rmw_fastrtps_cpp > yes
> pi@192.168.1.40
> pi:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
> pi:bin$ ./listener > no
> pi:bin$ ./listener__rmw_opensplice_cpp > no
> pi:bin$ ./listener__rmw_fastrtps_cpp > no
> pi:bin$ ./listener_best_effort > no
> pi:bin$ ./listener_best_effort__rmw_opensplice_cpp > no
> pi:bin$ ./listener_best_effort__rmw_fastrtps_cpp > no
ros@192.168.1.20
ros:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
ros:bin$ ./talker__rmw_fastrtps_cpp
> ros@192.168.1.20
> ros:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
> ros:bin$ ./listener > yes after restarting talker
> ros:bin$ ./listener__rmw_opensplice_cpp > yes
> ros:bin$ ./listener__rmw_fastrtps_cpp > yes after restarting talker
> ros:bin$ ./listener_best_effort > yes
> ros:bin$ ./listener_best_effort__rmw_opensplice_cpp > yes
> ros:bin$ ./listener_best_effort__rmw_fastrtps_cpp > yes
> ros@192.168.1.21
> ros:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
> ros:bin$ ./listener > yes
> ros:bin$ ./listener__rmw_opensplice_cpp > yes
> ros:bin$ ./listener__rmw_fastrtps_cpp > yes after restarting talker
> ros:bin$ ./listener_best_effort > yes
> ros:bin$ ./listener_best_effort__rmw_opensplice_cpp > yes
> ros:bin$ ./listener_best_effort__rmw_fastrtps_cpp > yes
> pi@192.168.1.40
> pi:bin$ export OSPL_URI=file:///usr/etc/opensplice/config/ospl.xml
> pi:bin$ ./listener > no
> pi:bin$ ./listener__rmw_opensplice_cpp > no
> pi:bin$ ./listener__rmw_fastrtps_cpp > no
> pi:bin$ ./listener_best_effort > no
> pi:bin$ ./listener_best_effort__rmw_opensplice_cpp > no
> pi:bin$ ./listener_best_effort__rmw_fastrtps_cpp > no