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"
8 #include "libs/Config.h"
10 #define alpha_steps_per_mm_checksum CHECKSUM("alpha_steps_per_mm")
11 #define beta_steps_per_mm_checksum CHECKSUM("beta_steps_per_mm")
12 #define gamma_steps_per_mm_checksum CHECKSUM("gamma_steps_per_mm")
14 #define arm_length_checksum CHECKSUM("arm_length")
15 #define arm_radius_checksum CHECKSUM("arm_radius")
17 #define alpha_angle_checksum CHECKSUM("alpha_angle")
18 #define beta_relative_angle_checksum CHECKSUM("beta_relative_angle")
19 #define gamma_relative_angle_checksum CHECKSUM("gamma_relative_angle")
21 class RostockSolution
: public BaseSolution
{
23 RostockSolution(Config
* passed_config
);
24 void millimeters_to_steps( double millimeters
[], int steps
[] );
25 void steps_to_millimeters( int steps
[], double millimeters
[] );
27 void set_steps_per_millimeter( double steps
[] );
28 void get_steps_per_millimeter( double steps
[] );
30 float solve_arm( float millimeters
[] );
31 void rotate( float in
[], float out
[], float sin
, float cos
);
34 float alpha_steps_per_mm
;
35 float beta_steps_per_mm
;
36 float gamma_steps_per_mm
;
40 float arm_length_squared
;
55 #endif // ROSTOCKSOLUTION_H