Closed9
ZenohでPC間のROS 2トピック通信
WSLと別PCとの間でのトピック通信を試す。
- ROS 2のインストールは済んでいるものとします。
- zenoh-bridge-ddsを追加でインストールします。
sudo apt install ros-humble-zenoh-bridge-dds
別PC側にて
ros2 run zenoh_bridge_dds zenoh_bridge_dds -l tcp/0.0.0.0:7447
Publish
ros2 run demo_nodes_cpp talker
WSL側にて
ros2 run zenoh_bridge_dds zenoh_bridge_dds -e tcp/{別PCのIPアドレス}:7447
Subscribe
ros2 run demo_nodes_cpp listener
WSLと別PC間で時刻ズレがあるとエラーになるので時刻同期する
エラー内容
- 別PC側のコンソールに下記のようなエラーが表示される
[2023-12-27T08:22:12Z ERROR zenoh::net::routing::pubsub] Error treating timestamp for received Data (incoming timestamp from F9039AF2CCA14BE7A607C400179A8C42 exceeding delta 100ms is rejected: 2023-12-27T08:22:13.760682929Z vs. now: 2023-12-27T08:22:12.731079582Z): drop it!
- WSLに一部のメッセージが届いていない様子。
- まずWindowsの時刻同期を実行。
- WSL2とWindows間で時刻同期を実行。
sudo hwclock --hctosys
- 別PCの時刻同期も実行
特にこだわりがなければNICTのサーバーを指定するのがよいかと思います。
ntp.nict.jp
このスクラップは2023/12/27にクローズされました