Archive for June, 2012
We design and build autonomous security robots, and one of the questions we hear most often is “What does autonomous mean?” Autonomy is a tricky word. One can trace its roots back to ancient Greece, where, at the simplest, it meant the ability to say “no.” From that came the idea of self-rule or self-governance: the right to decide, for one’s self, what to do. It is a simple idea, and one that we take for granted as people. We have autonomy – the right to decide for ourselves what we will do next, and how we will do it. But how does that apply to a robot? In robots we think of autonomy as the ability to choose actions or behaviors in order to achieve some goal of the robot.
A couple of images come to mind when we think of robots: the bomb disposal robot on a newscast, the industrial welding robot we see in commercials assembling cars, perhaps a vacuum cleaning robot scurrying around the floor, and, of course, the movie robots like R2D2, or Wall-e. Each of these can be used to explore the idea of an autonomous robot. Around the lab, we break down these robots into four categories:
- reactive, and
Let’s look at these to see what makes them tick.
Tele-operation sounds a lot more impressive than it is. From the same roots as telescope: ‘far sight’, and telephone: ‘far sound’, we have ‘far control’. Basically a tele-operated robot, like a bomb disposal robot, is like a big radio controlled car. The operator is at a distance from the robot, and can control every motion. For dangerous tasks (like bomb disposal) this keeps the people safe. This is a key task for robotics; to enable the robot to take risks rather than people. We use tele-operation on many high profile robotics systems – the rovers on Mars rely on instructions from Earth, the drones flying over war zones receive control commands from thousands of miles away, and the deep-sea submersibles exploring the oceans under water pressures that would kill a person are driven by operators in shirt sleeves thousands of feet above on the surface.
However, there is a drawback. Without those second by second control signals, the robot sits like a lump. It does nothing on its own, it requires constant control. So, while we keep the operator at a safe distance, we do not get the benefit of reducing the workload. In fact, for many tele-operated systems the workload is increased. It can take as many as three or four operators to keep a drone flying and doing its job. Because it relies on the human operators understanding the situation, making decisions, planning the next steps and then executing that plan by sending control signals to the robot. That is the trade-off of tele-operated robots. So, these robots have almost no autonomy, they do what they are told with little or no self-governance. Note: several of these robots have limited safety systems that can over-ride commands that will put them in danger, but that is about it.
At the opposite end of the spectrum are the industrial robots that have made such a huge impact on modern manufacturing. These robots, once they are programmed, require little or no supervision. They just work. They work day in and day out, doing the same thing over, and over, and over again. This is the kind of thing that we want robots to do, relieve us of the deadly, dull tedium of doing the same thing over and over. And they work. In a recent study by the International Federation of Robotics, there are over 1.4 million robots at work in our factories, producing our goods. This is a job that robots are really, really good at doing.
However, here to is a downside. The robots work really well at routine, tightly defined tasks. But to enable them to work, they need to be in a very tightly controlled environment. Because they are pre-programmed to do the same thing over and over, they cannot react to any changes.
This has resulted in numerous accidents, and even deaths, resulting from a person being in the workspace of the robot (the envelope) when the robot was moving. This is also why we have not seen a breakthrough in service robots like that in industrial robots. The human environments: homes, shops, offices, etc. cannot be as tightly controlled as a factory floor. In human ‘workspaces’ constant change is the order of the day, and pre-programmed robots are unable to react to those changes. As far as autonomy goes, as far as having the ability to say ‘no’, these robots have none, and that is what makes them potentially dangerous.
‘Reactive system’ is a term associated with Rodney Brooks, a co-founder of i-Robot. A reactive system is one that does not follow a rigid sequence of pre-programmed steps, rather it senses the world on a moment by moment basis and selects a behavior. This behavior remains in effect until the sensors show a state that requires a different behavior.
As an example, imagine a robotic vacuum cleaner. When activated it starts a behavior that says go forward 10 feet. When the sensors show 10 feet traveled it starts a behavior that causes it to execute a spiral pattern, cleaning the floor. When a sensor indicates an obstacle, it turns until clear, the goes in a straight line until the next obstacle, this repeats, and repeats. This behavior (known as a drunkard’s walk) will, eventually, cover the floor, and all will be clean. When the sensors indicate a low battery, the robot turns until it detects the home beacon, then heads for home to recharge. No real plan, no idea what it is doing, but what the robot does next is totally under the control of the reactive behaviors. So, is this autonomy?
That is a surprisingly tricky question. Clearly, the robot is not under direct control. Nor is it mindlessly following a step by step set of instructions. But, neither is there any ability to say ‘no,’ no ability to choose a behavior. In one sense, this robot is exactly like an industrial robot, except that the pre-programmed actions are triggered by immediate sensor data, rather than by a strict sequence.
So, what is an autonomous robot? An autonomous robot can make decisions based on the current goals, and the current situation. We will use our security robots as an example, since we are very familiar with them.
Suppose that you are in charge of security for a warehouse, and you have a Vigilus(tm) security robot on duty. Every night, from 11pm until 7am it does security patrols, carrying a camera and sensors around the warehouse. Then, one night, there is a problem down at the loading dock. You need the security robot down there carrying all its sensors and gear. You simple command tells the robot “Go to the Loading Dock,” and the security robot is on its way.
Unlike a tele-operated robot, you don’t have to drive it there, you just tell it to go, and it figures out the best way to get there. It knows where it is, so it can look at hundreds of different possible routes to take, and select one. It can keep track of changes that might affect its travel, and reject a route that requires going through a congested hallway. Once it picks a route, it drives itself – no one needs to run a joystick or a game controller. Along the way it monitors what is going on. If there are problems (perhaps someone left a chair in the middle of the room), it decides what to do: go around the chair, maybe push the chair out of the way, or plan a different route that does not go through this room at all. If it can’t figure out a way to meet the goal it was given, it can decide to try again, or to call for help.
In short, an intelligent autonomous robot acts sort of like you would expect a teammate to work. If you give it a task, it will try to get the task done, using its model of the way things are, and its model of the things it knows how to do to come up with a plan, and carry it out.
So, it differs from the other types of robots in key ways, ways that make it more useful:
- Unlike a tele-operated robot, it doesn’t need a driver – it acts on its own,
- Unlike a pre-programmed robot, it can deal with a dynamic, changing world, and
- Unlike a reactive system, it builds a model of the world, and plans out actions to achieve its goals.
Where is your robot? Ours are being built by Gamma Two Robotics, here in Colorado.