For simplicity reasons I will from now on use the term 'robot' for the object whose motion is to be planned rather than speaking about abstract entities, but depending on the application you have in mind you may freely substitute 'sprite', 'spaceship', 'car' and many more. They all fit in the same framework:
They can perform several kinds of movement (e.g. move forward, rotate certain parts,...). The types of movement a robot can perform will be referred to as degrees of freedom (dof) in the following discussion.
At every point in time, they have exactly one location and orientation that is described by giving a numeric value for each dof. Those values taken together form a so-called configuration. The set of all numerically possible combinations of dof values is called the configuration space C.
While the configuration space may contain many more configurations that are numerically possible, only certain configurations are conceptually or physically legal. A robot can only move between obstacles, not through them for instance. Configurations that are allowed will be referred to as free configurations and the subset of C made up by them is the free configuration space Cfree.
Moving from one configuration to a different configuration is not instantaneous (we don't have teleporting robots, yet). Intermediate configurations have to be passed through that must all be within Cfree to be feasible. Computing a sequence of free configurations (a path) that connects a start configuration with a goal configuration (e.g. moves the robot around obstacles from point A to point B) is non-trivial.
The last point already describes the problem discussed in this article:
Given a certain set C (derived from a robot's dof), a subset Cfree of C, a start configuration qstart and a goal configuration qgoal (both elements of Cfree), compute a path within Cfree that connects qstart with qgoal.