屋外でWi-Fi介して,複数台のPCとROS noetic版を使って通信すると,
あるタイミングから,トピックが配信できない・受信できないという問題に遭遇した.
本気で,わからなかったが,あるコマンドを使うことで解決した.
対象
OS: ubuntu 20.04
ROS noetic
対処方法
- roscoreをやめて,rosmasterを使うこと
- rosmasterで,処理スレッド数とソケットのタイムアウトの時間を設定すること
必要最低限のノード管理プロセスだけ立ち上げて,
処理スレッド数(10)とタイムアウトの時間(40)を設定する.
roscore代わりに,rosmaster
rosmaster --core -w 10 -t 40 --master-logger-level=fatal
rosmaster実行して,立ち上げたいノードをすべて立ち上げ切ったら,
ログを削除する.だんだんと重くなる原因.
- ~/.rosフォルダ内のログを消しちゃうこと
ログ全消し
rosclean purge -y
これで,強制的にログ・ファイルが削除される.
定期的に,このコマンドを実行した方がいい.
これで,トピックが飛ばなくなるといった現象は起こらなくなった.
めでたし,めでたし