Open Kanazawanaoaki opened 3 months ago
base_scanはUSBで接続されていると思うんだけど、別のhokuyoを外において1日置いてみるとどうなるかな。
ありがとうございます.今日後で試してみようと思います.
https://github.com/jsk-ros-pkg/jsk_robot/blob/develop/pr2-noetic/jsk_pr2_robot/jsk_pr2_startup/pr2_bringup.launch#L79-L97 を見るとtiltもhokuyoでc2にささっていてほぼ同じなのだと思うのですが,今もtopicがちゃんと出ているようなのでbaseの方のhokuyoのハードウェア的な問題でなにかを取り替えると解決するのかもですね.
現在baseは出ていなくて,tiltは出ている状態で,
$ ls -alF /etc/ros/sensors/*hokuyo
lrwxrwxrwx 1 root root 28 2月 8 2023 /etc/ros/sensors/base_hokuyo -> /dev/sensors/hokuyo_H1002732
lrwxrwxrwx 1 root root 28 2月 8 2023 /etc/ros/sensors/tilt_hokuyo -> /dev/sensors/hokuyo_00902645
となっていて,どちらも認識はされている?
単体テストを行うと
[ERROR] [1723953698.565381456] [/base_hokuyo_node:ros.hokuyo_node]: Laser returned abnormal status message, aborting: Trouble!! Error No. =[00->33] You may be able to find further information at http://www.ros.org/wiki/hokuyo_node/Troubleshooting/
[0->33] There is interference from another IR source (often another Hokuyo). Unplugging and replugging the power seems to fix the problem. のエラーでした.
PR2で使っているHokuyoのUTM-30LXはUSBケーブルと電源ケーブルの2本があり,電源ケーブルの方の抜き差しが必要なので,PR2本体のブレーカから再起動が必要になるようです.
エラーコードは異なりますが,エラーの説明の内容が似ていたので,そのros wikiに添付されているプログラムをダウンロードして以下のようにbase_hokuyoのリセットをしてみたところブレーカの再起動無しで/base_scan
が出るようになりました.その後の様子をみてみます.
$ ./upgrade /etc/ros/sensors/base_hokuyo reset.cmd
これで/base_scan
が出なくなる問題が解決すれば良いのですが,今後も出なくなる問題が頻繁に発生する場合は,その対処法としてこのhokuyoのリセットが良いかどうかはまた考える必要がありそうです.
様子を見ていましたが先程
[INFO] [1724038811.365504]: I haven't seen the base scan topic for 5.0 seconds.
となったので確認すると/base_scan
が出なくなっていました.タイムスタンプを確認すると,だいたい
Sun Aug 18 2024 13:44:04 GMT+0900 (日本標準時)にスタートで,
Mon Aug 19 2024 12:40:11 GMT+0900 (日本標準時)にでなくなった.
ので約23時間程で出なくなったようです.根本の問題は解決しておらず依然この問題は一日に一回くらいの頻度でおこるよう.
試しに,そのままの状態で
pr1040s:~/Downloads/hokuyo_debug$ ./upgrade /etc/ros/sensors/base_hokuyo reset.cmd
をすると,/base_scan
が出るようにはなりました.
(ros wiki にはBefore running this command, shut down the hokuyo_node. Run: と書いてあるので本当はnodeを切ってから単体のlaunchを立ち上げるのが正しかったです.)
hokuyoのresetコマンドを頻繁に送るのが正しいかどうか次第で, https://github.com/jsk-ros-pkg/jsk_robot/blob/develop/pr2-noetic/jsk_pr2_robot/jsk_pr2_startup/jsk_pr2_sensors/check_openni_node.py#L58 を参考にリスタートするノードを書くこと自体はできそうです.
先程も/base_scanが出ていなかったので
kinectのcheck_openni_node.pyを参考に書いたcheck_base_scan_node.pyをc2のhokuyo resetプログラムが置いてあるところで実行したところ,base_hokuyo_nodeをkillしてからhokuyoをリセットして単体のlaunchを立ち上げ直して,/base_scan
が復活することは確認できました.
その時のlog
hokuyoのハードウェア側の問題であれば,定期resetプログラムを走らせておくのが丸いですかね
2024年8月20日(火) 11:01 Naoaki Kanazawa @.***>:
先程も/base_scanが出ていなかったので kinectのcheck_openni_node.py https://github.com/jsk-ros-pkg/jsk_robot/blob/develop/pr2-noetic/jsk_pr2_robot/jsk_pr2_startup/jsk_pr2_sensors/check_openni_node.py#L58 を参考に書いたcheck_base_scan_node-py https://gist.github.com/Kanazawanaoaki/d4b0bb8f0002b482a1459eaecb27b10f#file-check_base_scan_node-pyをc2のhokuyo resetプログラムが置いてあるところで実行したところ/base_scanで復活することは確認できました. その時のlog https://gist.github.com/Kanazawanaoaki/d4b0bb8f0002b482a1459eaecb27b10f#file-20240820_log_check_base_scan_node-log
— Reply to this email directly, view it on GitHub https://github.com/jsk-ros-pkg/jsk_robot/issues/1920#issuecomment-2297822852, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGUARFGPH4ZQN2SXO2BQVZ3ZSKPQFAVCNFSM6AAAAABMNKB3BKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJXHAZDEOBVGI . You are receiving this because you are subscribed to this thread.Message ID: @.***>
hokuyoのハードウェア側の問題であれば,定期resetプログラムを走らせておくのが丸いですかね
まあそうかなと思ったので https://github.com/jsk-ros-pkg/jsk_robot/pull/1922 のPRを作ってみてPR1040の体内で走らせてみて様子を見ています. ログは,c2の中で
$ cd ~/.ros/log/latest
$ ls | grep hokuyo
$ tail -f base_hokuyo_scan_checker-4.log
とかで見られます.
最近,PR1040を使おうと思うと,ほぼ毎回
/base_scan
のトピックが出ておらず,/base_scanが出ていないとmove_base
などが利用できないため,日を跨いだら再起動してから利用するというようになってしまっています.pythonのプログラム で数日様子をみていましたが,以下のように3~12時間くらいの経過で/base_scanがpublishされなくなっています.
2024/08/08の15時くらいに起動した.
Fri Aug 09 2024 02:16:51 GMT+0900 (日本標準時) 11時間くらい
20240809の19時半くらいに再起動した.
Fri Aug 09 2024 23:48:37 GMT+0900 (日本標準時) 4時間くらい
20240810の15時半くらいに再起動した
Sat Aug 10 2024 18:54:02 GMT+0900 (日本標準時) 3時間半くらい
2024/08/10の19時半くらいに再起動した
Sun Aug 11 2024 03:12:58 GMT+0900 (日本標準時) 8時間くらい
原因究明
jsk-pr2-startupとrobot.log のpublishさらなくなったAug 9 02:16あたりを見てみても原因はよくわかりませんでした.
となっているのが気になりましたが,台車背面物理ブレーカから再起動し
/base_scan
が出ている状態でも/message_store/query_messages
のrosserviceは存在しませんでした.解決策
https://github.com/jsk-ros-pkg/jsk_robot/issues/1406#issuecomment-966466652 のrqt_pr2_dashboardからのブレーカの再起動や,
での再起動では復活しませんでした.ですので,kinectのようにソフトウェアで検知して再起動で対処するのは難しそうです. 物理的に台車背面のブレーカから再起動をすると復活します.