Allow me to recap the last 40 years of personal software history:
Desktop > Web > Mobile > IoT > Voice Assistants
Now it’s time for the next step.
Robots are about to become a platform worthy of every developer’s time. After all, every single thing that a phone, desktop, or voice assistant can do, a robot can do. (And yes, like a phone, some robots can even fit in your pocket.)
But unlike those other platforms, robots can independently interact with the physical environment, and that changes everything. As a robot skill developer, you are no longer limited to having your code push pixels around a phone screen.
Instead, your code can push around the phone itself.
Your code’s got a new home (with a face and a voice and that moves and…)
Robots and software platforms are not two things that we’re used to thinking of together.
For good reason. Many robots being developed at this point are exercises in precision and control, built for special-purpose research or niche use. They’re nothing like a modern, general-use software platform such as a laptop or phone.
Other mass-production robots do provide platforms for software development. They’re awesome, but still not quite platforms for developing what we might consider typical home or business software. There’s also a widely known robot middleware platform: ROS. But at this point it’s still more commonly used in research environments than for general-use robots in mass production.
So how do we go from robots today — alternately too simple or too focused — to robots as ubiquitous platforms for software development? Because that iswhere robots are going: powerful, professional grade, and programmable.
The first step in that direction is the commoditization of key hardware components. In addition to the continuing effects of Moore’s Law on chip performance and prices, relatively inexpensive sensors, actuators, and batteries now mean that sophisticated robots can be offered at the price of a laptop. Sensors, in particular, are seeing price drops that are changing the landscape for companies building everything from robots to IoT devices to cars.
The second advance is in safety. Up until very recently, a powerful robot was not necessarily a safe robot for humans to be around. And while it’s true that highly capable robots can now be small and lightweight, it’s also true that researchers are thinking hard about how to build safety into AI and robotic behavior. Rethink Robotics, a builder of cobots, is very clear that safety is a primary consideration.
The third major leap forward has simply been that a lot of thought and investment has started going into robotics. From computer vision to face detection to voice processing to AI, corporations and universities have been pouring resources into solving problems and making advanced abilities accessible.
All this adds up to: powerful, flexible personal robots that also happen to be affordably priced development platforms.
Leading-edge development has its upsides
Robots as software platforms are in their infancy. But that’s a good thing.
Imagine being there when the first mass-market personal computers were being developed in the 70s and 80s and having an actual influence on the definition of the first consumer software platforms. You could have changed the world, right? A few hardy software visionaries even did.
Still, there was next to no way for most developers to engage in true platform feedback back then. There was no open source, social media, community forums, and only incredibly limited email. Developer feedback was pretty much not an option. By the time developer contributions to operating systems and APIs were an accepted possibility, we were 20 or 30 years down the road and largely stuck with what we had.
Yes, robots are just now becoming realistic as development platforms. But the glorious thing is that there are a variety of operating systems and languages and SDKs to choose from. None of them are burdened by history or cruft (well, aside from our SciFi imaginings), and nearly all are being developed by passionately devoted folks who believe in robots and developers and want to make their products great.
Thanks to social media, forums, open source, meetups, and all of it, your voice matters. Is there a robot our there that you like, but want to have API wrappers for in a different language? Do you have a great idea that builds off an existing consumer robot but that might require a little system tweaking? It’s 2018, and companies want you to speak up. It’s all good, and we’re listening.
Interaction made personal
So, yes, we’re finally at a point where we can legitimately talk about developers writing code for robots in mass production. But that’s not all. The amazing thing is, we can also start thinking about writing software for robots with personality.
Why is this a big deal? Well, we’ve known for a while now that humans personify their interactions with computers and media, even with highly abstract objects. We naturally apply our social rules (politeness, for example) when we engage with them.
We also know that the more an object interacts with us in ways that are natural for humans, the easier and more effective that interaction can be. An early paper on the topic, “Using a Human Face in an Interface” set it out in no uncertain terms: “Compared to subjects who answered questions presented via text display on a screen, subjects who answered the same questions spoken by a talking face spent more time, made fewer mistakes, and wrote more comments.” This observation continues to be validated as the study of human-computer interaction continues.
So, given robots are being designed with human-friendly personalities and are out in the world interacting with us, there are huge implications for robots as a software platform. For one thing, it makes user interactions with your software intrinsically more engaging. That’s both an opportunity and a responsibility.
The opportunity is clear: A friendly robot with helpful software can be a force for good in human lives. Companionship and caretaking are real needs for many people, and for some people robots may be able to fill that need.
The responsibility is both social — to ensure your highly personable software is a force for good — and technical. For the latter, we need to start thinking about how to write software that:
- works with and maintains a coherent robot personality
- extends and adapts that personality
- utilizes personality to improve performance
This is crazy powerful stuff, and we haven’t even talked about the opportunities to customize and extend robot hardware yet.
Hardware is… flexible
Hardware is the fundamental leap forward that makes robots a world-changing development platform. Robots can move and interact with the world, and, therefore, so can your code. Your app or skill can now physicallyinteract with living beings and objects.
Translating programming into physical actions is at the heart of robotics. You can write a skill that causes a robot to recognize your dog and block him from entering the kitchen when you’re standing at the stove. You can write code that tells a robot to wander your office each night and report any unknown faces who appear (along with where and when they were observed).
That ease of control over the physical environment is unprecedented.
But as cool as that is, that’s just the starting point. Some robots — yes, our robot among them — are hardware extensible, and that means:
- Makers and hobbyists don’t have to build out advanced abilities in order to bring their product ideas to market. For hobbyist robot builders, incorporating things like movement, sensing, and mapping (let alone face and object recognition) can be a seriously complex task. When you’ve got a platform that provides these out of the box, you’re free to be creative, not stuck with technical issues and costly experimentation.
- Want to create robots with custom arms/grippers/whatevers? Go for it. 3D printing is your friend. Being able to design your own robot appendages mean that developers in large enterprise organizations can deploy fleets of highly customized robots, exactly where and how they are needed.
- Want to add backpacks or trailers to the robot? Sure thing.
- Headgear? Have at it.
How smart is that robot?
One last thing. What does it mean when you can develop software for something that not only moves around on its own and affects the real world, but something that moves around, affects the real world, and learns?
Super-powered AI onboard your household robot may not be here yet, but the interesting thing is what is. Personal robots can now locally perform the sort of machine learning work that was previously limited to the cloud.
As an example, our robot runs a neural network locally that performs face recognition. The robot acquires image data, which is then processed by the neural network in real-time. This is not lightweight work, but it’s now rightfully seen as among the minimum capabilities for a professional-grade robot.
At the moment, it’s also reasonably easy for robots to integrate with voice assistants and other AI-type software in the cloud. Getting to more powerful examples of local learning and behavior adaptation on your personal robot is only a matter of time.
Are you excited yet? We are. Robots as a platform are just about to change the world. What are you going to build?