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