Я пытаюсь построить данные в реальном времени, поступающие из другого узла в ros, используя matplotlib, но всякий раз, когда я запускаю код, он показывает только пустые графики без вывода каких-либо данных на нем. в чем может быть проблема, пожалуйста?
Вот мой код:
import rospy
from datetime import datetime
from std_msgs.msg import Float64
from geometry_msgs.msg import Vector3
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
plt.show()
i = 0
xs = []
ys = []
time = []
#def callback0(msg):
def callback1(msg):
global i
time.append(i)
xs.append(msg.x)
ys.append(msg.y)
#plot time vs xs
ax.plot(time, xs)
print(len(time), len(xs))
ax.set_xlim(left= max(0, i-50), right= i+50)
plt.draw()
plt.pause(0.5) #graph keep updating each 1 sec
i += 1
if __name__ == '__main__':
rospy.init_node('subscriber' ,anonymous=True)
#rospy.Subscriber('fchatter', Float64, callback0)
rospy.Subscriber('vchatter', Vector3, callback1)
rospy.spin()