Building a robotics application requires the coordination of a dizzying array of disciplines: mechanical engineering, electrical engineering, embedded software engineering, controls engineering, manufacturing engineering, expertise in perception and robotics algorithms, systems software engineering, and beyond.
But building an application that meets a set of functional requirements is often just the beginning. A team must also address a host of other concerns:
- How will we know whether the application is working as designed?
- If an exception occurs, how can we understand the root cause and recover quickly?
- How will we manage software, hardware, and configuration updates?
- How can we provide visibility into the application for other stakeholders?
- How will we empower team members to maintain these systems, both locally and remotely?
In summation, once the application is built, how will it be managed, monitored, and operated?
Deploying the application in someone else’s farm, factory, or home compounds these challenges.
In other domains such as web development, and increasingly in IoT, we have dozens of tools to choose from to support observability, configuration management, and other operational concerns.
Unfortunately, robots aren’t web servers, and they aren't your classical IoT devices either.
Relative to web servers, robots operate in less stable, less structured, and less reliably network-connected environments. Relative to a canonical IoT device, robots generate more data, are better resourced, and encompass more complex distributed systems. And in contrast to both, robots traffic in unique types of data, often with a geometric, visual, or geospatial interpretation involved.
For these reasons, applying operational tools from other domains to robotics and automation applications often feels like trying to fit a square peg in a round hole.
This is why Formant aims to address the unique operational needs of the robotics and automation community specifically.