Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Fetch] do not speak warning diagnostics to avoid noisy fetch #1128

Merged
merged 1 commit into from
Oct 23, 2019

Conversation

708yamaguchi
Copy link
Member

@708yamaguchi 708yamaguchi commented Sep 11, 2019

In this Pull Request, I set ~speak_warn param as False by default, so that our fetch do not speak too much.

There are many ROS_WARN in fetch PC and fetch sometimes speak noisy (e.g. when I use rosserial).
This causes fetch user to kill sound_play.

(fetchのwarningがうるさくて僕がしばしばrosnode killしてしまい、他のfetchユーザに迷惑がかかってしまうので、warningは喋らせないようにしました。)

Cc @knorth55

@k-okada
Copy link
Member

k-okada commented Sep 12, 2019

ちなみに,Warnの内容はどういうことをしゃべっているの?

@708yamaguchi
Copy link
Member Author

一番問題だと思うのは、CPUがhigh loadだとしゃべり続けることです。

以下のcpu_monitor.pyで、直近1分 or 5分のCPU loadが一定値を超えるとwarningを出すようになっているのですが、負荷の高い処理を行っているとずっとfetchがしゃべり続けてしまいます。
またノードをkillしても、過去1分 or 5分のCPU loadはすぐには下がらず、当分しゃべり続けます。
https://github.com/PR2/pr2_robot/blob/kinetic-devel/pr2_computer_monitor/scripts/cpu_monitor.py#L307-L308

最初のコメントではrosserialを使っている時に問題が起きると書きましたが、rosserialで出ているメッセージはerrorだったので関係無かったです。
(たまにerrorが出るけど、rosserialからtopicは出続けていたようです。)

@k-okada
Copy link
Member

k-okada commented Sep 12, 2019 via email

@708yamaguchi
Copy link
Member Author

喋らせないようにするためにthresholdを甘くするのは本末転倒感があるので、僕としてはwarningを喋らせないようにするのが良いと思っています。

元々はfetchの腕が落ちる問題の原因を探るためにCPU loadをdiagnosticsに出すようにしていて、thresholdを甘くすると腕が落ちる問題のログ取りにも影響が出るのかなと思いました。

@k-okada
Copy link
Member

k-okada commented Sep 12, 2019 via email

@708yamaguchi
Copy link
Member Author

となると,warningは同じものだったら10分間喋らない,みたいなプログラムになっちゃう気がするけど...

ROSのLOGGINGにもthrottleがあるのと同じ作戦ですね
http://wiki.ros.org/roscpp/Overview/Logging

cpu_warning.pyの中で、同じwarningは10分ごとにしか話さないようにしようと思います。

@k-okada
Copy link
Member

k-okada commented Sep 12, 2019 via email

@708yamaguchi
Copy link
Member Author

708yamaguchi commented Sep 12, 2019

warning.pyを編集して、10分間は同じwarningを喋らないようにしました。
パラメータを10分から1分に変えて実機のfetchで試し、1分おきにCPU Usage High Loadのwarningを喋らせることが出来ました。

あと、僕の勘違いがあって、今のfetchでは既にwarningを喋らない設定になっていました。(最近fetchを触っておらず、すっかり忘れていました)
https://github.com/jsk-ros-pkg/jsk_robot/blob/master/jsk_fetch_robot/jsk_fetch_startup/launch/fetch_bringup.launch#L17-L19

なので、上記のspeak_warn=falseはやめて、10分ごとに同じwarningを喋らせるようにしました。

@k-okada
Copy link
Member

k-okada commented Oct 14, 2019

@708yamaguchi please resolve conflicts

@708yamaguchi
Copy link
Member Author

I updated.

@knorth55
Copy link
Member

it seems working correctly on fetch15

@knorth55 knorth55 mentioned this pull request Oct 19, 2019
29 tasks
@k-okada k-okada merged commit 37f7e8c into jsk-ros-pkg:master Oct 23, 2019
@708yamaguchi 708yamaguchi deleted the ignore-warning branch November 24, 2021 07:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants