An efficient pseudo-inverse solution to the inverse kinematic problem for six-joint manipulators