CityU Dream Development

Dependencies:   mbed ros_lib_melodic

Committer:
bensonsinsin998
Date:
Thu Feb 25 07:41:29 2021 +0000
Revision:
0:c2b6f8b48076
hi

Who changed what in which revision?

UserRevisionLine numberNew 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