こんにちは。
ROSのcallbackを使う際に、特に受け取ったデータを使わないのでstd_msgs/Emptyを使ったら使い方を間違っていたので今後のためにメモ。
あるノードの開始を/hogestartで通知するのに、特に開始するという情報だけで情報自体は必要なかったので、std_msgs/Emptyを使ってこんな感じで書いてた。(途中省略)
ためしにrosrunをした後、他のターミナルからトピックを送ると、以下のエラーが出て落ちてしまった。
エラーメッセージから引数が違いそう、ということで、callbackの定義でselfだけでなく引数を以下のように追加したら 無事想定通り動きました。
しょーもないミスでしたけど10分くらい悩んだのでメモがてら残しておきます。。
ROSのcallbackを使う際に、特に受け取ったデータを使わないのでstd_msgs/Emptyを使ったら使い方を間違っていたので今後のためにメモ。
あるノードの開始を/hogestartで通知するのに、特に開始するという情報だけで情報自体は必要なかったので、std_msgs/Emptyを使ってこんな感じで書いてた。(途中省略)
from std_msgs.msg import Empty ... subscribe ( "/hogestart" Empty, callback) ... def callback(self): rospy.loginfo("start called") self._is_start = True
ためしにrosrunをした後、他のターミナルからトピックを送ると、以下のエラーが出て落ちてしまった。
TypeError: callback() takes exactly 1 argument (2 given)
エラーメッセージから引数が違いそう、ということで、callbackの定義でselfだけでなく引数を以下のように追加したら 無事想定通り動きました。
def callback(self, data):
しょーもないミスでしたけど10分くらい悩んだのでメモがてら残しておきます。。
0 件のコメント:
コメントを投稿