My working definition of an autonomous robot is: a robot is autonomous if it has the computational resources - both in terms of hardware and softwre - other than realtime interference from a human agent, to estimate how it is physically embedded in the environment to compute best possible actions bounded by some constraints to percieve and move if needed, to achieve a set of goals. According to this working definition, a robot's ability to estimate its current state (how it is physically embedded in the envrionment) is an essential component of autonomy. Then, it has to have adequate computational resources at its disposal to take an action within bounds, to perceive the environment more if needed, and move if needed, to achieve a given goal.

Similar questions and discussions