  Instabilities of robot motion are caused by topological reasons. In this
paper we find a relation between the topological properties of a configuration
space (the structure of its cohomology algebra) and the character of
instabilities, which are unavoidable in any motion planning algorithm. More
specifically, let $X$ denote the space of all admissible configurations of a
mechanical system. A {\it motion planner} is given by a splitting $X\times X =
F_1\cup F_2\cup ... \cup F_k$ (where $F_1, ..., F_k$ are pairwise disjoint
ENRs, see below) and by continuous maps $s_j: F_j \to PX,$ such that $E\circ
s_j =1_{F_j}$. Here $PX$ denotes the space of all continuous paths in $X$
(admissible motions of the system) and $E: PX\to X\times X$ denotes the map
which assigns to a path the pair of its initial -- end points. Any motion
planner determines an algorithm of motion planning for the system. In this
paper we apply methods of algebraic topology to study the minimal number of
sets $F_j$ in any motion planner in $X$. We also introduce a new notion of {\it
order of instability} of a motion planner; it describes the number of
essentially distinct motions which may occur as a result of small perturbations
of the input data. We find the minimal order of instability, which may have
motion planners on a given configuration space $X$. We study a number of
specific problems: motion of a rigid body in $\R^3$, a robot arm, motion in
$\R^3$ in the presence of obstacles, and others.
