Move most handling of steps from arm_solution,Robot,Planner to StepperMotor
[clinton/Smoothieware.git] / src / modules / robot / arm_solutions / RostockSolution.h
1 #ifndef ROSTOCKSOLUTION_H
2 #define ROSTOCKSOLUTION_H
3 #include "libs/Module.h"
4 #include "libs/Kernel.h"
5 #include "BaseSolution.h"
6 #include "libs/nuts_bolts.h"
7
8 #include "libs/Config.h"
9
10 #define arm_length_checksum CHECKSUM("arm_length")
11 #define arm_radius_checksum CHECKSUM("arm_radius")
12
13 #define alpha_angle_checksum CHECKSUM("alpha_angle")
14 #define beta_relative_angle_checksum CHECKSUM("beta_relative_angle")
15 #define gamma_relative_angle_checksum CHECKSUM("gamma_relative_angle")
16
17 class RostockSolution : public BaseSolution {
18 public:
19 RostockSolution(Config*);
20 void cartesian_to_actuator( float[], float[] );
21 void actuator_to_cartesian( float[], float[] );
22
23 float solve_arm( float millimeters[] );
24 void rotate( float in[], float out[], float sin, float cos );
25
26 float arm_length;
27 float arm_radius;
28 float arm_length_squared;
29
30 float sin_alpha;
31 float cos_alpha;
32 float sin_beta;
33 float cos_beta;
34 float sin_gamma;
35 float cos_gamma;
36 };
37
38
39
40
41
42
43 #endif // ROSTOCKSOLUTION_H