I am using rospy to get data of my robot's position and plot this in real time.
This is what I have:
self.plot_pose()
def plot_pose(self):
plt.plot(self.pose[0], self.pose[1], 'o', color='green')
plt.plot([self.pose[0], self.pose[0] - 0.5*np.cos(self.pose[2])],
[self.pose[1], self.pose[1] + 0.5*np.sin(self.pose[2])],
'k-', color='red', lw=2)
plt.show(block=False)
plt.pause(0.0001)
Unfortunately this doesn't erase the plot but overlays everything. So I tried using
plt.clf()
plt.cla()
the first one gives me deprecation error and the second one gives me a blank plot for some reason. I am using python2.7 and rospy library.
Any suggestions on how to update the plot would be greatly appreciated.
This is the same as usual with animations. Try to avoid creating new plots every interation and instead update the old one.
You may need to adjust the limits of the plot (
plt.xlim()
,plt.ylim()
) if the points are outside of it.