The biggest obstacle to broader adoption of robotics is that only experienced roboticists can develop robotics applications. To make a robot reliably and robustly do something useful, you need a deep understanding of a broad variety of topics, from state estimation to perception to path planning. While few people in the world have this expertise, many people can write software. What we need is more of those software developers involved in the business of developing robotics applications.
I say “applications” to distinguish this work from that of developing new algorithms or core building blocks. Making an analogy to traditional software development, I don’t need to understand how process schedulers, or file systems, or memory managers work in order to develop useful desktop applications. And I don’t need to know the details of DNS, web servers, or web sockets to develop portable web applications. Knowing more about the underpinnings of the system will always be useful, of course. But the key is that, once the building blocks are established, understood, documented, and tutorialized, the barrier has been greatly lowered: you just need to be able to write code.
Beyond just getting more people working with robots, we need better ideas for how robotics technology can be usefully and profitably employed to support people in their everyday lives. My experience in the robotics community over the last 15 years has convinced me that roboticists are pathologically bad at coming up with application ideas. We’re enamored of the technology, which is good in that it motivates us to work hard on important problems. But it also leads us to concentrate on “robotic” solutions to problems, without regard to what people who experience those problems really need. We can fix this problem by adding orders of magnitude more developers to our community, each of whom comes with a new and different perspective. And we can do that by making the development of robotics applications accessible to any competent programmer.
The Android and iOS platforms made it possible for people with no more than a passing understanding of 3G, GPS, or touch screens to build useful, even world-changing mobile applications. We can do the same for robotics. We’re on the right path, with a lot of effort going into open, shared software platforms for robotics. We just need to keep pushing, and to keep the non-robotics engineer in mind when we’re building things.