Open sktometometo opened 1 year ago
答えとしては、
ROS_HOSTNAME
をFQDNにする( export ROS_HOSTNAME=BelKa.jsk.imi.i.u-tokyo.ac.jp
を行う )/etc/hosts
に FQDNを加える (以下のように書き加える)
127.0.0.1 BelKa BelKa.jsk.imi.i.u-tokyo.ac.jp
FQDNでなくても、BelKa.local
(mDNS) を使って同様の名前解決をすることができる。
@kindsenior @Naoki-Hiraoka はどうしていますか?
https://github.com/clearpathrobotics/robot_upstart/blob/987376f5c49864e9e250e5bb5b88ae13e0ed6973/templates/job-start.em#L62
の部分でhostnameではなく、FQDNなり、hoge.local
とするか、.bashrc
に書いておく必要がある。
@sktometometo .local
が動く条件はどうなっているのでしょうか?
以下のようにbelkaは見つかるけど,strelka は見つからない..
k-okada@73A2-SURFACE:~$ nslookup belka.local
Server: 192.168.64.1
Address: 192.168.64.1#53
Non-authoritative answer:
Name: BelKa.local
Address: 133.11.216.165
Name: BelKa.local
Address: fe80::f5d9:8862:dd51:d015
k-okada@73A2-SURFACE:~$ nslookup strelka.local
Server: 192.168.64.1
Address: 192.168.64.1#53
** server can't find strelka.local: NXDOMAIN
k-okada@73A2-SURFACE:~$ cat /etc/hosts
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateHosts = false
127.0.0.1 localhost
127.0.1.1 73A2-SURFACE. 73A2-SURFACE
@k-okada strelkaが起動してないとstrelka.localの名前解決はできないですが起動してますか?
動いています .local 動く条件はなんなんでしょう?
関係ない気もしますが,belkaとstrelkaではホスト名の命名方法が違う気がします. strelkaはcore-ioになっています.
# strelka's terminal
spot@core-io:~$ ping strelka
PING StrelKa.jsk.imi.i.u-tokyo.ac.jp (133.11.216.166) 56(84) bytes of data.
64 bytes from core-io.jsk.imi.i.u-tokyo.ac.jp (133.11.216.166): icmp_seq=1 ttl=64 time=0.093 ms
64 bytes from core-io.jsk.imi.i.u-tokyo.ac.jp (133.11.216.166): icmp_seq=2 ttl=64 time=0.088 ms
64 bytes from core-io.jsk.imi.i.u-tokyo.ac.jp (133.11.216.166): icmp_seq=3 ttl=64 time=0.118 ms
64 bytes from core-io.jsk.imi.i.u-tokyo.ac.jp (133.11.216.166): icmp_seq=4 ttl=64 time=0.093 ms
# belka's terminal
spot@BelKa:~$ ping belka
PING BelKa (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.031 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.033 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.029 ms
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.046 ms
なるほど,以下で名前解決しました
$ nslookup core-io.local
Server: 192.168.64.1
Address: 192.168.64.1#53
Non-authoritative answer:
Name: core-io.local
Address: 133.11.216.166
Name: core-io.local
Address: fe80::169d:a1ea:5370:917d
条件1: ロボットと同じネットワークに繋がったWindowsマシン内WSLからRVizでロボットの状態を確認したい 条件2: ロボットがポケットWi-Fiに繋がった状態でロボット体内のシステムが正常に動いてほしい (cf. https://github.com/jsk-ros-pkg/jsk_robot/issues/1726#issuecomment-1451373384)
例えば、ロボットのIPとHost名は
となっていて、WSL側は例えば
となっていてネットワークが違う.
したがって、ROS_MASTER_URI を FQDN にしても、
BelKa:38367
などは解決できずに通信できないことがある。 by @k-okada