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

[google_cloud_texttospeech]sound_play_machineに指定したPCとlaunchを呼んだPCでディレクトリ構成が違うと日本語を話さない #250

Open
Naoki-Hiraoka opened this issue May 31, 2021 · 15 comments

Comments

@Naoki-Hiraoka
Copy link
Contributor

<env name="PATH" value="$(find google_cloud_texttospeech)/bin:$(env PATH)" />

@Naoki-Hiraoka Naoki-Hiraoka changed the title [google_cloud_texttospeech] ディレクトリ構成が違うと日本語を話さない [google_cloud_texttospeech]sound_play_machineに指定したPCとlaunchを呼んだPCでディレクトリ構成が違うと日本語を話さない May 31, 2021
@Naoki-Hiraoka
Copy link
Contributor Author

$(find google_cloud_texttospeech)は,launchを呼んだPCでのgoogle_cloud_texttospeechへのパスが入るため,sound_play_machineに指定したPCとディレクトリ構成が違うと正しくパスを指定できませんでした.

@knorth55
Copy link
Member

knorth55 commented May 31, 2021

ディレクトリ構造が違うのが問題ではなく,machine tagで起動したリモートのPCのPATHに設定されていないのだと思います.
この場合はmachine tagのenv-loaderにPATHを更新するように変更する必要があるかと思います.

@knorth55
Copy link
Member

いや違うか.
env-loaderは更新する必要はないのかな.
remoteマシーンでjsk_3rdpartyがインストールされているか,最新版になっているかを確認してください.
あとIssueをたてるときはlog outputを貼ってください.

@Naoki-Hiraoka
Copy link
Contributor Author

roslaunchしたPC側の

<env name="PATH" value="$(find google_cloud_texttospeech)/bin:$(env PATH)" />

の行を編集して,sound_play_machineに指定したPCのgoogle_cloud_texttospeechへのパスをベタ書きすると動くことは確認できました.

env-loaderでPATHを指定しても,roslaunchのenvタグのPATHによって上書きされるため,効果はありませんでした.

SIOD ERROR: unbound variable : ja
[ERROR] [1622449077.811238]: Sound synthesis failed. Is festival installed? Is a festival voice installed? Try running "rosdep satisfy sound_play|sh". Refer to http://wiki.ros.org/sound_play/Troubleshooting
[ERROR] [1622449077.814098]: Exception in actionlib callback: 'NoneType' object has no attribute 'command'

machineタグを使用する場合に,roslaunchの$(find )をremote PC側で評価してくれればよいのですが...

machineタグを使うことは諦めて,remote PCにsshしてからroslaunchすることにします...

@knorth55
Copy link
Member

knorth55 commented May 31, 2021

なんとなく言っているエラーはわかりましたが,logを全て貼ってください.話はそこから始まるので.
そして,roslaunchfindがlocal側で評価されているということですね.
それじゃあbashスクリプトをmachineタグで実行するのはどうでしょうか?
こんな感じで
https://github.com/jsk-ros-pkg/jsk_robot/blob/master/jsk_pr2_robot/jsk_pr2_startup/jsk_pr2_sensors/kinect_head.launch#L49-L60

@knorth55
Copy link
Member

knorth55 commented Jun 4, 2021

@Naoki-Hiraoka この問題どうなりましたか?

@Naoki-Hiraoka
Copy link
Contributor Author

自分個人の事情としては、今回自分がmachineタグを使いたかった理由は、これまでremote PCにsshしてからroslaunchする独自bashスクリプトを書いていたのですが、この独自bashスクリプトを使うのをやめたかったからでした。しかし、roslaunchfindがlocal側で評価されてしまうためmachineタグを使用したとしても結局独自bashスクリプトは必要と分かったため、machineタグを使うのをやめて現状維持としました。

google_cloud_texttospeechのlaunchファイルの引数sound_play_machineがうまく機能しないというこのissueの問題は依然として残っています。

@knorth55
Copy link
Member

knorth55 commented Jun 5, 2021

現状維持というのは,わざわざsshしてlaunchする方法でしょうか?
それならmachinタグでbashスクリプトするほうが工程が減っていい気がしますが

@Naoki-Hiraoka
Copy link
Contributor Author

説明が曖昧でした。「remote PCにsshしてからroslaunchする」という処理を行うbashスクリプトです。

@knorth55
Copy link
Member

knorth55 commented Jun 5, 2021

それだとしても,ターミナルで起動するコマンドが1つになるのでは?
それともsshしてroslaunchするスクリプトをノードとして実行しているってこと?
なら,マシンタグにすればいいのでは,とおもうんだけど.

@Naoki-Hiraoka
Copy link
Contributor Author

現物を直接見て頂いた方が早そうです。privateなリポジトリにあります。
https://github.com/start-jsk/rtmros_hrp2/issues/591

@knorth55
Copy link
Member

knorth55 commented Jun 5, 2021

うん,だからmachineタグでこの他のlaunchに組み込んだら良くないかな.
起動するlaunchを減らしたいという話ではないの?

@Naoki-Hiraoka
Copy link
Contributor Author

@Naoki-Hiraoka
Copy link
Contributor Author

Naoki-Hiraoka commented Jun 5, 2021

google_cloud_texttospeechのlaunchファイルの引数sound_play_machineがうまく機能しないというこのissueの対象のバグと論点が外れてきましたので、https://github.com/start-jsk/rtmros_hrp2/issues/591 に移動しませんか。

@knorth55
Copy link
Member

knorth55 commented Jun 5, 2021

なるほど、もとから1つのlaunchなのね。
じゃあそれでいいんじゃないかな。
問題としてはlaunchのfindが遅延評価されていないってことかな。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants