あーちゃん制御
Dependencies: FastPWM cal_PID mbed nucleo_rotary_encoder
omuni/omuni.hpp@0:4346c5764e83, 2017-09-25 (annotated)
- Committer:
- Akito914
- Date:
- Mon Sep 25 08:16:54 2017 +0000
- Revision:
- 0:4346c5764e83
??????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Akito914 | 0:4346c5764e83 | 1 | #ifndef _omuni_ |
Akito914 | 0:4346c5764e83 | 2 | #define _omuni_ |
Akito914 | 0:4346c5764e83 | 3 | |
Akito914 | 0:4346c5764e83 | 4 | #include "speed_control.hpp" |
Akito914 | 0:4346c5764e83 | 5 | |
Akito914 | 0:4346c5764e83 | 6 | #define THETA_ADDJUST 0.69f |
Akito914 | 0:4346c5764e83 | 7 | |
Akito914 | 0:4346c5764e83 | 8 | class Omuni |
Akito914 | 0:4346c5764e83 | 9 | { |
Akito914 | 0:4346c5764e83 | 10 | private: |
Akito914 | 0:4346c5764e83 | 11 | I2C *i2c; |
Akito914 | 0:4346c5764e83 | 12 | speed_control *o[3]; |
Akito914 | 0:4346c5764e83 | 13 | Timer time, t; |
Akito914 | 0:4346c5764e83 | 14 | float tvx, tvy, tomega; |
Akito914 | 0:4346c5764e83 | 15 | float vx, vy, omega, theta; |
Akito914 | 0:4346c5764e83 | 16 | float R, d; |
Akito914 | 0:4346c5764e83 | 17 | int addr[3]; |
Akito914 | 0:4346c5764e83 | 18 | float v[3]; |
Akito914 | 0:4346c5764e83 | 19 | bool f; |
Akito914 | 0:4346c5764e83 | 20 | public: |
Akito914 | 0:4346c5764e83 | 21 | Omuni(I2C *i, TIM_TypeDef *timer_type0, TIM_TypeDef *timer_type1, TIM_TypeDef *timer_type2, size_t pulse_per_revol, float _cy_ms, const int a[3], float _R, float _d); |
Akito914 | 0:4346c5764e83 | 22 | void set_pid(int n, float _kp, float _ki, float _kd); |
Akito914 | 0:4346c5764e83 | 23 | void set_speed(float vx, float vy); |
Akito914 | 0:4346c5764e83 | 24 | void set_speed(float vx, float vy, float omega); |
Akito914 | 0:4346c5764e83 | 25 | void set_speed(float _vx, float _vy, float _omega, bool _f); |
Akito914 | 0:4346c5764e83 | 26 | void renew_theta(); |
Akito914 | 0:4346c5764e83 | 27 | bool renew_speed(); |
Akito914 | 0:4346c5764e83 | 28 | void _set_speed(); |
Akito914 | 0:4346c5764e83 | 29 | void drive(); |
Akito914 | 0:4346c5764e83 | 30 | void reset_theta(); |
Akito914 | 0:4346c5764e83 | 31 | float get_theta(); |
Akito914 | 0:4346c5764e83 | 32 | float get_vx(); |
Akito914 | 0:4346c5764e83 | 33 | float get_vy(); |
Akito914 | 0:4346c5764e83 | 34 | }; |
Akito914 | 0:4346c5764e83 | 35 | |
Akito914 | 0:4346c5764e83 | 36 | #endif |