Open sktometometo opened 2 years ago
what is your assumption? 1) the robot run with DHCP address? or 2) robot changes network configuration from local netwrork to LTE/5G or wired connection to wireless connection during operation? 1) robot should have static IP address 2) please consider PR2 network settings, (with why we stop using this..) https://www.clearpathrobotics.com/assets/downloads/pr2/pr2_manual_r321.pdf
The reason we only rely on ROS_IP is we had MANY trouble on ROS_HOSTNAME, and rely on FQDN is always cause trouble and very hard to find the problem.
https://github.com/knorth55/jsk_robot/pull/273 での使用のために追加しました。
現在、Fetchはネットワーク監視スクリプトの挙動によりたまにNetworkManagerの再起動が行われ、このときにIPアドレスを一時的に持たない状態になり、ROS_IPの設定ではROSノードが通信できない状態になるらしいです。(この問題の詳細については @iory @708yamaguchi @tkmtnt7000 が詳しいようです。) これに対処するために、自動起動のROSノードはROS_HOSTNAMEをfetch1075などホスト名に設定して起動されています。これで通常時は133に接続されているロボットはfetchへ名前解決ができ、fetchのNetworkManager再起動時もFetch体内のノードは自分自身へ名前解決できるというコンセプトのようです。
一方、この方法だと、fetch上のアクセスポイントへ接続している際にfetch1075では名前解決出来ないので、ROSの通信を行うことができません。そのためにこの使い方をしているときにはFetch体内のROSノード立ち上げの際にROS_IPを10.42.0.1に設定するか、ROS_HOSTNAMEをfetch1075.localに設定したいです。
この設定を簡単に切り替えるために、一つの変数を受け取って、ROS_IPだけでなくROS_HOSTNAMEを設定したいときも適切に設定するためのコマンドとしてこのPRを用意しました。
ちゃんとわかっていないけど,NetworkManagerに依存せずに /etc/network/interaces に直書きする,というのはダメなのかな。
-- ◉ Kei Okada
2022年6月29日(水) 12:45 Koki Shinjo @.***>:
knorth55/jsk_robot#273 https://github.com/knorth55/jsk_robot/pull/273 での使用のために追加しました。
現在、Fetchはネットワーク監視スクリプトの挙動によりたまにNetworkManagerの再起動が行われ、このときにIPアドレスを一時的に持たない状態になり、ROS_IPの設定ではROSノードが通信できない状態になるらしいです。(この問題の詳細については @iory https://github.com/iory @708yamaguchi https://github.com/708yamaguchi @tkmtnt7000 https://github.com/tkmtnt7000 が詳しいようです。)
これに対処するために、自動起動のROSノードはROS_HOSTNAMEをfetch1075などホスト名に設定して起動されています。これで通常時は133に接続されているロボットはfetchへ名前解決ができ、fetchのNetworkManager再起動時もFetch体内のノードは自分自身へ名前解決できるというコンセプトのようです。
一方、この方法だと、fetch上のアクセスポイントへ接続している際にfetch1075では名前解決出来ないので、ROSの通信を行うことができません。そのためにこの使い方をしているときにはFetch体内のROSノード立ち上げの際にROS_IPを10.42.0.1に設定するか、ROS_HOSTNAMEをfetch1075.localに設定したいです。
この設定を簡単に切り替えるために、一つの変数を受け取って、ROS_IPだけでなくROS_HOSTNAMEを設定したいときも適切に設定するためのコマンドとしてこのPRを用意しました。
— Reply to this email directly, view it on GitHub https://github.com/jsk-ros-pkg/jsk_common/pull/1746#issuecomment-1169501778, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADYNXBB6TPOCXKKX7ZZEATVRPBCRANCNFSM52CHCC7A . You are receiving this because you commented.Message ID: @.***>
ネットワークの設定を固定するならNetworkManager要らないのですが、73B2内で使うのと73B2外で使うので設定を変えていて、簡単に設定を切り替えるのにNetworkManagerを使用しています。
これは,本当に長い戦いの歴史があるんだけど,外部PCから使っている人がhostnameを使う場面で,結局DNSが引けていない,間違えている,,,,等の問題が頻出して,結局rossetipが生まれた,という経緯かと思います。 体内で,状況を管理できる自動起動ノードがhostnameを使うのはアリだとおもいますが,一般ユーザがこれをつかってトラブルになることを考えると,自動起動時にROS_HOSTNAMEをセットするのが良いと思います。
add
rossetclient
command to setROS_IP
andROS_HOSTNAME
.Currently we have
rossetip
commands to setROS_IP
. But this command does not support to setROS_HOSTNAME
to hostname or FQDN likerossetip fetch1075.jsk.imi.i.u-tokyo.ac.jp
.rossetclient
command has almost the same behavior but it setROS_HOSTNAME
to argument when argument is not ip address, nor network device.