cp scripts/time_sub.py scripts/time_sub2.py
vim scripts/time_sub2.py
3行目と6行目、10行目に変更を加えます。
time_sub2.py
#!/usr/bin/env pythonimport rospyfrom ros_tutorial.msg import Date #changeddefcallback(message):print("date : %d , time : %f"% (message.date,message.time) )#changedif__name__=="__main__": rospy.init_node('time_sub') sub = rospy.Subscriber('Date_and_Time', Date , callback)#changed rospy.spin()
chmod +x scripts/time_sub2.py
コード解説
変更点だけ解説していきます。
from ros_tutorial.msg import Date
Dateをインポートしています。
print("date : %d , time : %f" % (message.date,message.time) )
dateはint型のため%d、timeはfloat型のため%fで表示しています。
sub = rospy.Subscriber('Date_and_Time', Date , callback)
トピック名をメッセージの型をDateに変更しています。
実行方法
それぞれ別のターミナルで実行しましょう。
roscore
rosrun ros_tutorial time_pub2.py
rosrun ros_tutorial time_sub2.py
実行結果
$ rosrun ros_tutorial time_sub2.py
date : 20181108 , time : 224947.85194
date : 20181108 , time : 224947.95175
date : 20181108 , time : 224948.05449
date : 20181108 , time : 224948.15677
date : 20181108 , time : 224948.25193
date : 20181108 , time : 224948.35248
date : 20181108 , time : 224948.45211
date : 20181108 , time : 224948.55515
date : 20181108 , time : 224948.6551
date : 20181108 , time : 224948.75641
date : 20181108 , time : 224948.85298
date : 20181108 , time : 224948.9519
date : 20181108 , time : 224949.05382
date : 20181108 , time : 224949.15634
date : 20181108 , time : 224949.25606
date : 20181108 , time : 224949.35245
date : 20181108 , time : 224949.45277
date : 20181108 , time : 224949.55351
date : 20181108 , time : 224949.65224
date : 20181108 , time : 224949.75421
date : 20181108 , time : 224949.8536
date : 20181108 , time : 224949.95257