rt_maniplty - compute the scalar manipulability index for the manipulator at the given pose[view code]
This function computes the scalar manipulability index for the manipulator robot at the given pose q. Manipulability varies from 0 (bad) to 1 (good).
Two measures are supported and are selected by the optional argument which. Yoshikawa's manipulability measure is based purely on kinematic data, and gives an indication of how 'far ' the manipulator is from singularities and thus able to move and exert forces uniformly in all directions. Asada's manipulability measure utilizes manipulator dynamic data, and indicate how close the inertia ellipsoid is to spherical.
If q is a vector (p = 1) rt_maniplty returns a scalar manipulability index. If q is a matrix (p > 1) rt_maniplty returns a column vector and each row is the manipulability index for the pose specified by the corresponding row in q.
// To show how to obtain informations about how 'well-conditioned' the // manipulator is for making certain motions starting from a given pose, // the following code can be used. exec <PATH>/models/rt_puma560.sce; // load Puma 560 parameters q = [0.1, 0.75, -2.25, 0 .75, 0], // the given pose.. rank( rt_jacob0(p560, q) ), // ..is not singular rt_maniplty(p560, q, "yoshikawa"), // Yoshikaw measure rt_maniplty(p560, q, "asada"), // Asada measure // Both of these measures would indicate that this particular pose is not // 'well conditioned'.
rt_jacob0, rt_inertia, rt_robot,
Corke, P.I. "A Robotics Toolbox for MATLAB", IEEE Robotics and Automation Magazine, Volume 3(1), March 1996, pp. 24-32
T. Yoshikawa, "Analysis and control of robot manipulators with redundancy", in Proc. 1st Int. Symp. Robotics Research, (Bretton Woods, NH), pp. 735-747, 1983.