Computers Indistinguishable from Humans
For a robot something like moving to a wall can involve many steps. First measure the distance to the wall, convert the measurement to wheel revolutions, and then move forward that distance. This sounds pretty simple, right? Well lets say that the robot is driving on an uneven surface and for a second one of its wheels slips while the other keeps pushing the robot forward. This causes the robot to be at an angle from its last measurement making it necessary to remeasure and realign with the wall before continuing on its course. This is an example of how robots although acting on a formulaic structure will inevitably need to overcome variables in their environment that will result in what will seem to be variations in their behavior.
Imagine that we build a robot that can shoot hoops with a basket ball. The robot uses a sonar sensor to measure the distance between it's head and the hoop. The robot's programming contains the parameter that says that the robot's height is 6 feet. With these two measurements the robot can calculate the height of the hoop and adjust its throw so that the ball will make it through. In theory, all exact calculations work but in real life there is more variables than we can account for. If the wind blows, if the ground is uneven leaving the robot lower or at an angle to the hoop - anything can cause the calculations that the robot makes to be less accurate which will lead to the robot missing its shot. Even the best human basket ball players miss a few shots and this robot if the human variable is removed would be no exception.