3輪オムニホイール制御 GNCT, B team

Dependencies:   nucleo_rotary_encoder

Committer:
sawai
Date:
Thu Sep 28 10:50:37 2017 +0000
Revision:
0:3bd8aecadafc
?????????xy?????; ???????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sawai 0:3bd8aecadafc 1 #ifndef _omuni_
sawai 0:3bd8aecadafc 2 #define _omuni_
sawai 0:3bd8aecadafc 3
sawai 0:3bd8aecadafc 4 #include "speed_control.hpp"
sawai 0:3bd8aecadafc 5 #include "L3GD20_i2c.hpp"
sawai 0:3bd8aecadafc 6
sawai 0:3bd8aecadafc 7 #define THETA_ADDJUST 0.69f
sawai 0:3bd8aecadafc 8
sawai 0:3bd8aecadafc 9 class Omuni
sawai 0:3bd8aecadafc 10 {
sawai 0:3bd8aecadafc 11 private:
sawai 0:3bd8aecadafc 12 I2C *i2c;
sawai 0:3bd8aecadafc 13 l3gd20 *gyro;
sawai 0:3bd8aecadafc 14 speed_control *o[3];
sawai 0:3bd8aecadafc 15 Timer time, t;
sawai 0:3bd8aecadafc 16 double tvx, tvy, tomega;
sawai 0:3bd8aecadafc 17 double vx, vy, omega, theta;
sawai 0:3bd8aecadafc 18 double R, d;
sawai 0:3bd8aecadafc 19 int addr[3];
sawai 0:3bd8aecadafc 20 double v[3];
sawai 0:3bd8aecadafc 21 bool f;
sawai 0:3bd8aecadafc 22 bool crevx, crevy;
sawai 0:3bd8aecadafc 23 public:
sawai 0:3bd8aecadafc 24 Omuni(I2C *i, TIM_TypeDef *timer_type0, TIM_TypeDef *timer_type1, TIM_TypeDef *timer_type2, size_t pulse_per_revol, double _cy_ms, const int a[3], double _R, double _d);
sawai 0:3bd8aecadafc 25 void set_pid(int n, double _kp, double _ki, double _kd);
sawai 0:3bd8aecadafc 26 void change_motor_direction(int n, bool _rev);
sawai 0:3bd8aecadafc 27 void change_coordinates_direction(bool _crevx, bool _crevy);
sawai 0:3bd8aecadafc 28 void set_speed(double vx, double vy);
sawai 0:3bd8aecadafc 29 void set_speed(double vx, double vy, double omega);
sawai 0:3bd8aecadafc 30 void set_speed(double _vx, double _vy, double _omega, bool _f);
sawai 0:3bd8aecadafc 31 void renew_theta();
sawai 0:3bd8aecadafc 32 bool renew_speed();
sawai 0:3bd8aecadafc 33 void _set_speed();
sawai 0:3bd8aecadafc 34 void drive();
sawai 0:3bd8aecadafc 35 void reset_theta();
sawai 0:3bd8aecadafc 36 double get_theta();
sawai 0:3bd8aecadafc 37 double get_vx();
sawai 0:3bd8aecadafc 38 double get_vy();
sawai 0:3bd8aecadafc 39 };
sawai 0:3bd8aecadafc 40
sawai 0:3bd8aecadafc 41 #endif