CODeME
Dynamic_Mechanism.h
Go to the documentation of this file.
1 
12 #ifndef DYNAMIC_MECHANISM_H_INCLUDED
13 #define DYNAMIC_MECHANISM_H_INCLUDED
14 
15 #include "Complex_Dynamic_Control.h"
16 
17 double** (*Serial_Get_Mass_Center_Position) (int DoF , double* DH_Parameters , double* Theta);
18 
19 double** (*Inertia_Matrix) (double* DH_Parameters , double** q , ROBOT_DATA Robot);
20 double** (*Coriolis_Matrix) (double* DH_Parameters , double** q , ROBOT_DATA Robot);
21 double* (*Gravitational_Vector) (double* DH_Parameters , double** q , ROBOT_DATA Robot);
22 void (*Direct_Dynamic_Function) (double* DH_Parameters , double** q , double* Torque, ROBOT_DATA Robot);
23 void (*Inverse_Dynamic_Function) (double* DH_Parameters , double** q , double* Torque, ROBOT_DATA Robot, double dt);
24 
25 
26 /***********************************************************************************************************************************/
27 /***********************************************************************************************************************************/
28 /*****************************************************/ /*Serial Mechanisms*/ /*****************************************************/
29 /***********************************************************************************************************************************/
30 /***********************************************************************************************************************************/
31 
32 double** Serial_midLink_Mass_Position (int DoF , double* DH_Parameters , double* Theta);
33 double*** Serial_Linear_Cylindrical_Inertia_Tensor (int DoF , double* DH_Parameters , double* Mass , double* Radious);
34 
35 double** Serial_Compute_Jacobian_Position (int DoF , double* DH_Parameters , double* Theta);
36 double** Serial_Compute_Jacobian_Orientation (int DoF , double* DH_Parameters , double* Theta);
37 double** Serial_Set_Inertia_Matrix (int DoF , double* DH_Parameters , double* Theta , double*** Inertia , double* Mass);
38 double*** Serial_Get_Inertia_Derivative (int DoF , double* DH_Parameters , double* Theta , double*** Inertia , double* Mass);
39 double** Serial_Set_Coriolis_Matrix (int DoF , double* DH_Parameters , double* Theta , double*** Inertia , double* Mass , double* Velocitys);
40 double* Serial_Set_Gravitational_Vector (int DoF , double* DH_Parameters , double* Theta , double* Mass , double* Gravity);
41 void Serial_Direct_Dynamic (int DoF , double* DH_Parameters , double** q , double* Torque, double*** Inertia , double* Mass , double* Gravity);
42 void Serial_Inverse_Dynamic (int DoF , double* DH_Parameters , double** q , double* Torque, double*** Inertia , double* Mass , double* Gravity, double dt);
43 
44 /**************************************************/ /*Elbow 2 DOF Manipulator*/ /*************************************************/
45 int Elbow_Set_Functions ();
46 double** Elbow_Set_Inertia_Matrix (double* DH_Parameters , double** q , ROBOT_DATA Robot);
47 double** Elbow_Set_Coriolis_Matrix (double* DH_Parameters , double** q , ROBOT_DATA Robot);
48 double* Elbow_Set_Gravitational_Vector (double* DH_Parameters , double** q , ROBOT_DATA Robot);
49 void Elbow_Direct_Dynamic (double* DH_Parameters , double** q , double* Torque, ROBOT_DATA Robot);
50 void Elbow_Inverse_Dynamic (double* DH_Parameters , double** q , double* Torque, ROBOT_DATA Robot, double dt);
51 
52 int Two_Link_Set_Functions ();
53 double** Two_Link_Set_Inertia_Matrix (double* DH_Parameters , double** q , ROBOT_DATA Robot);
54 double** Two_Link_Set_Coriolis_Matrix (double* DH_Parameters , double** q , ROBOT_DATA Robot);
55 double* Two_Link_Set_Gravitational_Vector (double* DH_Parameters , double** q , ROBOT_DATA Robot);
56 void Two_Link_Direct_Dynamic (double* DH_Parameters , double** q , double* Torque, ROBOT_DATA Robot);
57 void Two_Link_Inverse_Dynamic (double* DH_Parameters , double** q , double* Torque, ROBOT_DATA Robot, double dt);
58 
59 int Two_LinkMass_Set_Functions ();
60 double** Two_LinkMass_Set_Inertia_Matrix (double* DH_Parameters , double** q , ROBOT_DATA Robot);
61 double** Two_LinkMass_Set_Coriolis_Matrix (double* DH_Parameters , double** q , ROBOT_DATA Robot);
62 double* Two_LinkMass_Set_Gravitational_Vector (double* DH_Parameters , double** q , ROBOT_DATA Robot);
63 void Two_LinkMass_Direct_Dynamic (double* DH_Parameters , double** q , double* Torque, ROBOT_DATA Robot);
64 void Two_LinkMass_Inverse_Dynamic (double* DH_Parameters , double** q , double* Torque, ROBOT_DATA Robot, double dt);
65 
66 /**************************************************/ /*Elbow 3 DOF Manipulator*/ /*************************************************/
67 int Elbow_3DOF_Set_Functions ();
68 double** Elbow_3DOF_Set_Inertia_Matrix (double* DH_Parameters , double** q , ROBOT_DATA Robot);
69 double** Elbow_3DOF_Set_Coriolis_Matrix (double* DH_Parameters , double** q , ROBOT_DATA Robot);
70 double* Elbow_3DOF_Set_Gravitational_Vector (double* DH_Parameters , double** q , ROBOT_DATA Robot);
71 void Elbow_3DOF_Direct_Dynamic (double* DH_Parameters , double** q , double* Torque, ROBOT_DATA Robot);
72 void Elbow_3DOF_Inverse_Dynamic (double* DH_Parameters , double** q , double* Torque, ROBOT_DATA Robot, double dt);
73 
74 /**************************************************/ /*Articulated Manipulator*/ /*************************************************/
75 int Articulated_Set_Functions ();
76 double** Articulated_Set_Inertia_Matrix (double* DH_Parameters , double** q , ROBOT_DATA Robot);
77 double** Articulated_Set_Coriolis_Matrix (double* DH_Parameters , double** q , ROBOT_DATA Robot);
78 double* Articulated_Set_Gravitational_Vector (double* DH_Parameters , double** q , ROBOT_DATA Robot);
79 void Articulated_Direct_Dynamic (double* DH_Parameters , double** q , double* Torque, ROBOT_DATA Robot);
80 void Articulated_Inverse_Dynamic (double* DH_Parameters , double** q , double* Torque, ROBOT_DATA Robot, double dt);
81 
82 /************************************************/ /*Anthropomorphic Manipulator*/ /***********************************************/
83 int Anthro_Set_Functions ();
84 double** Anthro_Set_Inertia_Matrix (double* DH_Parameters , double** q , ROBOT_DATA Robot);
85 double** Anthro_Set_Coriolis_Matrix (double* DH_Parameters , double** q , ROBOT_DATA Robot);
86 double* Anthro_Set_Gravitational_Vector (double* DH_Parameters , double** q , ROBOT_DATA Robot);
87 void Anthro_Direct_Dynamic (double* DH_Parameters , double** q , double* Torque, ROBOT_DATA Robot);
88 void Anthro_Inverse_Dynamic (double* DH_Parameters , double** q , double* Torque, ROBOT_DATA Robot, double dt);
89 
90 #endif // DYNAMIC_MECHANISM_H_INCLUDED
Definition: Complex_Dynamic_Control.h:31
double ** Serial_Set_Inertia_Matrix(int DoF, double *DH_Parameters, double *Theta, double ***Inertia, double *Mass)
Definition: Dynamic_Mechanism.c:117