This surprised me a bit when I first go to Voyage, because most of my core motion control work is in C++, wherease pyplot is (perhaps obviously) a Python library.
But it turns out that switching over to Python for visualization can make a lot of sense, because much of the time our C++ code generates flat text log data. This data can be read just as easily (easier, really) by Python as C++. And matplotlib is just such a nice tool for quick visualizations, especially inside a Jupyter notebook.
It’s pretty neat to write a dozen or two lines of code and get a really intuitive display of what’s going on in the vehicle.
Maybe “really intuitive” is a stretch, but the plot above will be vaguely familiar to anyone who had to draw basic motion diagrams in high school physics.
The blue line is velocity, which first slopes upward from zero because the car is accelerating, and then slopes downward back to zero because the car is decelerating.
The green and purple lines represent the throttle and brake values, which of course explain why the car is accelerating in the first half of the plot and decelerating in the second have.
“Really intuitive”, right?