libmove3d
3.13.0
|
00001 00002 #ifndef GP_WORKSPACE_H 00003 #define GP_WORKSPACE_H 00004 00010 00013 class gpSAHandInfo 00014 { 00015 public: 00016 double q1min, q1max; 00017 double q2min, q2max; 00018 double q3min, q3max; 00020 double length1, length2, length3; 00021 00022 gpSAHandInfo(); 00023 }; 00024 00025 extern int gpSAHfinger_forward_kinematics(double length1, double length2, double length3, double q1, double q2, double q3, p3d_vector3 position, p3d_vector3 normal); 00026 00027 extern int gpSAHfinger_outer_workspace(double length1, double length2, double length3, double dq, std::vector<gpVector3D> &points, std::vector<gpVector3D> &normals); 00028 00029 extern int gpDraw_SAHfinger_outer_workspace(gpSAHandInfo data, double dq); 00030 00031 extern int gpSAHfinger_workspace(double length1, double length2, double length3, double dq, std::vector<gpVector3D> &points); 00032 00033 extern int gpSAHfinger_workspace_approximation(gpSAHandInfo data, double dq, double dr, unsigned int nb_spheres_max, std::vector<gpSphere> &spheres); 00034 00035 extern void svdcmp(float **a, int m, int n, float w[], float **v); 00036 00037 extern void p3d_mat3SVD(p3d_matrix3 M, p3d_matrix3 U, p3d_vector3 S, p3d_matrix3 V); 00038 00039 extern void p3d_mat4SVD(p3d_matrix4 M, p3d_matrix4 U, p3d_vector4 S, p3d_matrix4 V); 00040 00041 extern int gpSAHfinger_jacobian(double length1, double length2, double length3, double q1, double q2, double q3, p3d_matrix3 J); 00042 00043 extern int gpSAHfinger_main_force_direction(p3d_matrix4 Twrist, gpHand_properties &handProp, double q[4], int finger_index, p3d_vector3 direction); 00044 00045 // extern int gpSAHfinger_manipulability_ellipsoid(double length1, double length2, double length3, double q1, double q2, double q3); 00046 00047 extern int gpDraw_SAHfinger_manipulability_ellipsoid(p3d_rob *robot, gpHand_properties &hand_properties, int finger_index, int handID= 0); 00048 00049 extern int gpDraw_reachable_points(p3d_rob *robot, p3d_rob *object, gpHand_properties &handProp); 00050 00051 #endif