![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
carbase
Dependencies: mbed mbed-rtos ros_lib_melodic
MotorDrive.h@4:aa8ef06b9469, 2021-01-30 (annotated)
- Committer:
- howanglam3
- Date:
- Sat Jan 30 12:05:58 2021 +0000
- Revision:
- 4:aa8ef06b9469
updated
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
howanglam3 | 4:aa8ef06b9469 | 1 | #ifndef MOTOR_DRIVE |
howanglam3 | 4:aa8ef06b9469 | 2 | #define MOTOR_DRIVE |
howanglam3 | 4:aa8ef06b9469 | 3 | |
howanglam3 | 4:aa8ef06b9469 | 4 | // Mbed Library |
howanglam3 | 4:aa8ef06b9469 | 5 | #include <cmath> |
howanglam3 | 4:aa8ef06b9469 | 6 | #include <vector> |
howanglam3 | 4:aa8ef06b9469 | 7 | #include "OmniWheel.h" |
howanglam3 | 4:aa8ef06b9469 | 8 | |
howanglam3 | 4:aa8ef06b9469 | 9 | #define M_PI 3.14159265358979323846f |
howanglam3 | 4:aa8ef06b9469 | 10 | |
howanglam3 | 4:aa8ef06b9469 | 11 | using namespace std; |
howanglam3 | 4:aa8ef06b9469 | 12 | |
howanglam3 | 4:aa8ef06b9469 | 13 | class MotorDrive { |
howanglam3 | 4:aa8ef06b9469 | 14 | private: |
howanglam3 | 4:aa8ef06b9469 | 15 | const static double max_rpm = 5000; |
howanglam3 | 4:aa8ef06b9469 | 16 | const static double rads_to_rpm = 30.0 / M_PI; |
howanglam3 | 4:aa8ef06b9469 | 17 | const static double robot_radius = 0.19; |
howanglam3 | 4:aa8ef06b9469 | 18 | const static double wheel_radius = 0.05; |
howanglam3 | 4:aa8ef06b9469 | 19 | const static int wheel_num = 3; |
howanglam3 | 4:aa8ef06b9469 | 20 | |
howanglam3 | 4:aa8ef06b9469 | 21 | double offset_angle; |
howanglam3 | 4:aa8ef06b9469 | 22 | double offset_x; |
howanglam3 | 4:aa8ef06b9469 | 23 | double offset_y; |
howanglam3 | 4:aa8ef06b9469 | 24 | double pwm_coeff; |
howanglam3 | 4:aa8ef06b9469 | 25 | double wheel_radius_inv; |
howanglam3 | 4:aa8ef06b9469 | 26 | |
howanglam3 | 4:aa8ef06b9469 | 27 | OmniWheel omniWheel; |
howanglam3 | 4:aa8ef06b9469 | 28 | |
howanglam3 | 4:aa8ef06b9469 | 29 | vector<vector<double> > jacobian_matrix; |
howanglam3 | 4:aa8ef06b9469 | 30 | |
howanglam3 | 4:aa8ef06b9469 | 31 | public: |
howanglam3 | 4:aa8ef06b9469 | 32 | // Initialize MotorDrive |
howanglam3 | 4:aa8ef06b9469 | 33 | MotorDrive(); |
howanglam3 | 4:aa8ef06b9469 | 34 | virtual ~MotorDrive(); |
howanglam3 | 4:aa8ef06b9469 | 35 | // Function |
howanglam3 | 4:aa8ef06b9469 | 36 | OmniWheel getOmniWheelData(double linear_x, double linear_y, double angular_z); |
howanglam3 | 4:aa8ef06b9469 | 37 | }; |
howanglam3 | 4:aa8ef06b9469 | 38 | |
howanglam3 | 4:aa8ef06b9469 | 39 | #endif |