pythonでROS1のpub/sub_part2

やること

  • ROS1でメッセージのやり取り(pub/sub)

前回の記事

techsho.hatenablog.com

前回失敗したところ

ビルドが完了したので実行してみる

terminal1

cd ~/rospython; source devel/setup.bash
roscore

無事にroscore起動

terminal2

cd ~/rospython; source devel/setup.bash
rosrun ros_pubsubtest publish.py

エラーが出る

[rosrun] Couldn't find executable named publish.py below /home/hogehoge/rospython/src/ros_pubsubtest
[rosrun] Found the following, but they're either not files,
[rosrun] or not executable:
[rosrun]   /home/hogehoge/rospython/src/ros_pubsubtest/script/publish.py

ソースコードの確認

terminal1でroscore起動 termnial2でpython publish.pyでpubを起動 terminal3でpython subscribe.pyでsubを起動

f:id:techsho:20200428083353p:plain

左がpubのlogで右がsubのログです。

両方意図通り動いているのでソースコードの不具合ではなさそう。

そもそも、エラーログが、ファイルが存在しないてきな感じなので、やっぱりbuildの設定が原因?
そもそも、タブ補完されないのが怪しすぎる。。。

いろいろ確認していくと、ファイルに実行権限が与えられていなかったのが原因でした。

chmod +x publish.py
chmod +x subscribe.py

を実行

その後、

# ターミナル2
rosrun ros_pubsubtest publish.py
# ターミナル3
rosrun ros_pubsubtest subscribe.py

を実行すると、無事に起動しました。

参考になりそうな本