Singularity-free cartesian path planning and adaptive robust control of a robot manipulator with free-swinging passive joints.