This class introduces you to the fundamentals of autonomous mobile robots. Robots are autonomous when they make decisions in response to their environment. They achieve this using techniques from signal processing, control theory, and artificial intelligence, among others. These techniques are coupled with the mechanics, the sensors, and the actuators of the robot. Designing a robot therefore requires a deep understanding of its interfaces to the physical world.
The goals of this first lecture are to
- introduce the kind of problems roboticists deal with and how they solve it
- provide an overview of the concepts we will study in class
- give a brief overview over the robotics industry
Our notion of “intelligent behavior” is strongly biased by our understanding of the brain and how computers work: intelligence happens in our heads. In fact, however, a lot of behavior that looks intelligent can be achieved by very simple means. For example, mechanical wind-up toys can avoid falling of an edge simply by using a fly-wheel that rotates at a right angle to their direction of motion and a caster wheel. Once the caster wheel looses contact with the ground – that is the robot has reached the edge – the fly-wheel kicks in and pulls the robot to the right. The iRobot Roomba solves the same problem very differently: it employs infrared sensors that are pointed downwards to detect edges such as stairs and then issues a command to make an avoiding turn. Another example are ants that follow each other’s pheromone trails, but only stick to a trail with a certain probability in order to have a chance to discover new sources of food. What looks like intelligent behavior at the swarm level, could be achieved by simply equipping the ant with a pheromone sensor that occasionally fails. Which solution to achieve a certain desired behavior is best depends on the resources that are available to the designer. We will now study a more elaborate problem for which many, more or less efficient, solutions exist.
Imagine the following scenario. You are standing at the entry to a maze-like cave. There is a chest full of gold coins hidden somewhere inside. Unfortunately, you don’t have a map of the maze. In case you find the chest, you can only take a couple of coins at the time, and bring them to the exit door where your car is parked.
Exercise: Think about a strategy that will allow you to harvest as many coins in the shortest time possible. Think about the cognitive and perception capabilities you would make use of. Now discuss alternative strategies, if you would not have these capabilities, i.e., what if you were blind, had no memory?
These are exactly the same problems a robot would have. A robot is a mobile machine that has sensors and computation, which allows it to reason about its environment. Current robots are far from the capabilities that humans have, therefore it makes a lot of sense to think about what strategies YOU would employ to solve a problem, if you were lacking important perception or computational capabilities.
This class is organized around a miniature robot competition “RatsLife“. In RatsLife, two miniature robot “E-Pucks” compete on searching for four “feeders” that are hidden in a maze. Once a robot reaches a feeder, it receives “energy” to go on for another 60s, and the feeder is temporarily unavailable. After a short while, the feeder becomes available again. It should be clear by now, how YOU would solve this tasks using your abilities, and you should also have thought about fall-back strategies in case some of your sensors are unavailable. Here are some possible algorithms for a robot, ordered after the capabilities that it provides:
- Imagine you have a robot that can only drive (actuation) and bounce of a wall. The resulting random walk will eventually let the robot reach a feeder. As the allowed time to do so is limited, it is likely that the robot’s energy will soon deplete.
- Now imagine a robot that has a sensor that let it estimate the distance from a wall. This could be a whisker, an infrared distance sensor, an ultra-sound distance sensor, or a laser range finder. The robot could now use this sensor to keep following a wall to its right. Using this strategy for solving the maze, it will eventually explore the entire maze except for islands inside of it.
- Finally, think about a robot that could identify simple patterns using vision, has distance sensors to avoid walls, and an “odometer” to keep track of its wheel rotations. Using these capabilities, a potential winning strategy would be to explore the environment, identify markers in the environment using vision and use them to create a map of all feeder locations, calculate the shortest path from feeder to feeder and keep going back and forth between them. Strategy-wise, it might make sense to wait just in front of feeder and approach it only shortly before a robot runs out of power.
Exercise: Browse on www.e-puck.org, the homepage of the E-Puck robot to learn more about what the little robot’s capabilities are. Does this robot have enough sensors to implement all the strategies above?
Challenges of Mobile Autonomous Robots
Being able to stitch together a map of the environment just by counting your own steps and orienting yourselves using distinct features of the environment is known as Simultaneous Localization and Mapping (SLAM). The key challenge here is that the length of the steps you take are uncertain (a wheeled robot might slip or have slightly differently sized wheels, e.g.) and it is not possible to recognize places with 100% accuracy (not even for a human). In order to be able to implement something like the last algorithm on a real robot, we will therefore need to understand
- How does a robot move? How does rotation of its wheels affects its position and speed in the world?
- How do we have to control the wheel-speed in order to reach a desired position?
- What sensors exist for a robot to perceive its own status and its environment?
- How can we extract structured information from a vast amount of sensor data?
- How can we localize in the world?
- How can error be represented and how can we reason in the face of uncertainty?
- How do the specific challenges of robotics and its current solutions affect possible robotic products and society as a whole?
Since the introduction of the first industrial robot “Unimate” in 1961, the robotics industry classically consists of static manipulators that perform repetitive tasks such as welding or part placement, as well as of remote controlled machines for exploring hazardous areas. Recent advances in sensor technology and artificial intelligence are quickly enabling a new kind of robotic system: robots that can take autonomous decisions. Most prominent example of this class of robots is iRobots “Roomba” vacuum cleaner that was introduced in 2002 and that uses a variation of algorithm #1 above to solve the floor cleaning problem due to the lack of sophisticated sensors and computation. More recently, SLAM has found its ways into cars, university teams winning the DARPA Grand Challenge, Google’s cars logging more than 140,000 miles, and Volkswagen presenting the first assisted driving system in 2011. Similarly, KIVA systems successfully distributes mobile robots for automatic warehouses. These robots are still remote controlled and operate in constrained environments that provide them the ability to localize and reason on a simplified representation of the world – all items in the KIVA world are living on a grid. Novel sensors such as the xBox Kinect that provide 3D depth measurements at unprecedented low cost, increasingly capable and cheap computers, and a better understanding on how to reason about uncertainty will enable a large number of applications raising from autonomous warehouse helpers, home and elderly care, robotic toys and many other gimmicks straight from the Jetsons very soon.
- How a problem can be solved is a function of the available sensing, actuation, computation and communication abilities of the available platform. Usually, there exist trade-offs that allow you to solve a problem using a minimal set of resources, but compromise performance such as speed.
- This is different from problems in pure Artificial Intelligence, that do not deal with unreliable sensing or actuation.
- The unreliability of sensors, actuators and communication links, require a probabilistic notion of the system and reason with uncertainty.