| 1 | #ifndef RotatableDeltaSolution_H |
| 2 | #define RotatableDeltaSolution_H |
| 3 | #include "libs/Module.h" |
| 4 | #include "BaseSolution.h" |
| 5 | |
| 6 | class Config; |
| 7 | |
| 8 | class RotatableDeltaSolution : public BaseSolution { |
| 9 | public: |
| 10 | RotatableDeltaSolution(Config*); |
| 11 | void cartesian_to_actuator(const float[], float[] ); |
| 12 | void actuator_to_cartesian(const float[], float[] ); |
| 13 | |
| 14 | bool set_optional(const arm_options_t& options); |
| 15 | bool get_optional(arm_options_t& options); |
| 16 | |
| 17 | private: |
| 18 | void init(); |
| 19 | int delta_calcAngleYZ(float x0, float y0, float z0, float &theta); |
| 20 | int delta_calcForward(float theta1, float theta2, float theta3, float &x0, float &y0, float &z0); |
| 21 | |
| 22 | float delta_e; // End effector length |
| 23 | float delta_f; // Base length |
| 24 | float delta_re; // Carbon rod length |
| 25 | float delta_rf; // Servo horn length |
| 26 | float delta_z_offset ; // Distance from delta 8mm rod/pulley to table/bed |
| 27 | // NOTE: For OpenPnP, set the zero to be about 25mm above the bed |
| 28 | |
| 29 | float delta_ee_offs; // Ball joint plane to bottom of end effector surface |
| 30 | float tool_offset; // Distance between end effector ball joint plane and tip of tool |
| 31 | float z_calc_offset; |
| 32 | }; |
| 33 | #endif // RotatableDeltaSolution_H |