One may think that when building robots, which often don’t themselves have any screens, or may not be operated via some kind of visual display, that data visualization is not a natural or critical part of a hardware developer’s technology stack.
Quite the opposite.
Data-visualization is central to the design and analysis process. It is how we interpret the behavior of complex systems to learn about their behavior. A good charting tool, in our case Highcharts, has been crucial for teaching our students concepts like PID control, voltage/current relationships, sensor debugging, and other controls theory topics.
So, who are we?
We are part of a robotics competition team called Robot Casserole, from the Central Illinois area of the USA. We are a group of about 35 high school students and adult professional mentors. For over 13 years, we have banded together to face off with other teams at competitions hosted by FIRST, an international organization which runs a set of annual robotics challenges. The FIRST Robotics Competition (FRC) is the largest of these challenges. Every year, our team constructs a robot from scratch for a bespoke challenge, learning project planning, design, and debugging skills along the way. From the mechanical fabrication to the controls software, we strive to produce quality innovations every season.
In general, the robots weigh around 140 pounds. Matches last about two and a half minutes. During this time, robots compete 3v3 for both driver-operated and fully-autonomous modes, to gain as many points as possible. Precision, durability, and speed are all required to perform well throughout a weekend-long competition!
We’ve been using Highcharts for the past few years for visualizing data generated by our robots. We use a custom controller called a “roboRIO”. This is a piece of National Instruments hardware that provides a real-time Linux kernel on which we run our controls software. At runtime, our control software logs data to .csv files on the actual robot, as well as makes certain timestamped data samples available via a web interface.
Highcharts gets used in two key ways. First, in the robot’s web interface, we use Highcharts to provide a scrolling, real-time view of the robot’s state.
Our web interface allows us to select the data streams we care about. The robot then responds with JSON data in real time for the signals requested. Highcharts provided a very simple way to display the received JSON data in a rich, animated format that was easy to interpret and manipulate on the fly. We use this technique primarily while testing software on the robot and tuning controls parameters. It’s a high-velocity way to finely tune robot performance.
We have used this frequently to analyze strange behaviors seen on the field, allowing us to find the root cause of issues with confidence.
Highcharts has been crucial for teaching our students concepts like PID control, voltage/current relationships, sensor debugging, and other controls theory topics. The majority of our mentors have a background in embedded software, not web development. Still, our students and mentors were able to create these very dynamic and user-friendly data viewers with a minimal amount of effort, and have way more time to spend on teaching core technology concepts!
A handful of other teams have been using Highcharts products for visualizing their data, and not just from the robot. Maps, histograms, and other-team scouting applications have all been created with the libraries. The number is expanding too – every competition we go to, we get positive comments on the interface and questions about how we did it!
We want to send a special thank-you to the Highcharts team for their hand in our success – their high-quality libraries and commitment to open source is truly making a difference in our community!