Singularity-robust task-priority redundancy resolution for real-time kinematic control of robot manipulators