In classical position control, the feedback controller only cares about the position error and is tuned to minimize it. This is done by using very high gains, i.e. if there is even a small position error, the controller counteracts by applying very high torques to the joints. It does not matter if there is a person or a concrete wall in its path; just minimize the error with whatever force is necessary.
Impedance control is designed to adapt to the characteristics of the environment and thus limit contact forces. This achieved through (virtual) mass, damping and stiffness matrices that are not isotropic, i.e. different directions see different reaction forces. If you expect a stiff environment in one direction, you command the robot to react softly / compliantly in that direction. In directions you expect to move freely along, you command the robot to be stiff in order to achieve low position error.
To go with the example from the lecture slides:
Imagine standing in front of a wall blindfolded (slide 10 in reference ). You know that a flat wall is in front of you, but not where exactly. So in order to get into contact, you cautiously / softly move your arm forwards until you make contact.
Perpendicular to the wall you can move rigidly without excessive force (neglecting friction).
This system can be extended by using various state-dependent matrices depending on where in your task space you are and how certain you are that there might be contacts.
Also, to quote the main points from the introduction of :
- imposes a desired dynamic behavior to the interaction between robot end-effector and environment
- the desired performance is specified through a generalized dynamic impedance, namely a complete set of mass-spring-damper equations (typically chosen as linear and decoupled, but also nonlinear)
- a model describing how reaction forces are generated in association with environment deformation is not explicitly required
- suited for tasks in which contact forces should be “kept small”, while their accurate regulation is not mandatory
- since a control loop based on force error is missing, contact forces are only indirectly assigned by controlling position
- the choice of a specific stiffness in the impedance model along a Cartesian direction results in a trade-off between contact forces and position accuracy in that direction
 De Luca, Robotics 2, Lecture 15: Impedance Control Slides Mirror