Rotating from Vertical to Horizontal Robotic Development
We start with how robots have been developed in the past. It could be best described as an expertise dance between hardware and software. The best roboticists had a renaissance-man vibe to them and in small teams they would iterate and optimize the systems serially. The limiting factors here are time, expertise, and resources.
To see how the industry can move past this approach, we need to understand that robotic systems are composed of overlapping sets of primitives.
Robotic primitives
There are certain skills that every robot needs to have to be able to exist as a product. Every robot needs to: interact with the world (manipulation, locomotion, etc) and see the world, often called perception. Locomotion and control can use many different blocks that include different actuators and different algorithms for deciding and planning. Perception uses many different modalities that are akin to different senses.
If we zoom in on where multiple of the robotic companies converge, they have a lot of different capabilities and almost always some overlap with related systems. Leveraging these horizontal connections in similar types of data and motion is where opportunities lay.
Of course, I am not going to say this is easy to do: plugging data from another project into your own project and vice versa normally results in neither of them working. There is hope by leveraging hierarchies.
Hierarchy and Modularity
Hierarchical control and hierarchical learning are fields that explicitly or automatically create abstractions in systems to improve their behavior. Having a dynamic hierarchy is crucial to the development of this vision. If parts of the system cannot be separated from each other, there is little hope for robots using solutions sourced from multiple best-in-class suppliers (luckily, computer scientists, who are becoming the next generation of roboticists, are really best at abstraction).
The effect of the best hierarchy is robot-agnosticism, where some research has shown that data and methods can work on separate robots with centralized training. You can see these two papers to learn more (both of these papers were very well received and I have a strong inclination that this direction of research will continue): Multi-Robot Deep Reinforcement Learning via Hierarchically Integrated Models orSim-to-(Multi)-Real: Transfer of Low-Level Robust Control Policies to Multiple Quadrotors. As many roboticists are stuck away from their robots in lockdowns, the ability to share data is becoming pressing instead of just interesting.
Data and scaling
Looping back to the start, here is how I view the two companies I highlighted:
With a small variety of robots and a small number of robots streaming their data to the cloud, this is less impactful. Though, there is a clear trend of increasing the number of devices online, and Covariant starts to look like a totally different proposition when there are many systems trying to solve many scenarios.
This is not to say Covariant will solve all of the problems in the perception and control stack, but rather by being the best-in-class for one of the problems, their impact and value will aggregate.
Doubling down, this approach can allow new robotics companies to grow and deploy faster. For example, a company with a new actuator and scenario to solve (there are always new applications for robots, just sometimes not enough creativity) can use pluggable pieces of a perception and control stack like APIs from other companies. The new player will not need to collect abundant amount of data to use vision in their new environment, and it will serve to improve the player that they bought for any component. The company needs to solve the previously missing subcomponents, rather than building a whole new system from scratch.
The horizontal, modular companies will capture most of the value (as always happens with digital mediums), but the fast moving, new vertical companies will deploy quickly and bring back the exciting future of robots: we can make anything to solve your problem.