omni wheel library

Dependents:   quadOmni_yanagi NHK2017_octopus hayatoShooter

オムニ用のライブラリです。

Committer:
UCHITAKE
Date:
Tue Jul 04 17:52:45 2017 +0900
Revision:
2:9670cf9549aa
Parent:
1:add7d2b18162
Child:
3:413f27170090
fix Reference

Who changed what in which revision?

UserRevisionLine numberNew contents of line
UCHITAKE 1:add7d2b18162 1 /**
UCHITAKE 1:add7d2b18162 2 * @author keitaro takeuchi
UCHITAKE 1:add7d2b18162 3 *
UCHITAKE 1:add7d2b18162 4 * @section DESCRIPTION
UCHITAKE 1:add7d2b18162 5 * 3or4wheels omni libraryfor NHK2017.
UCHITAKE 1:add7d2b18162 6 */
UCHITAKE 1:add7d2b18162 7
UCHITAKE 1:add7d2b18162 8 #ifndef OMNI
UCHITAKE 0:979565e955a5 9 #define OMNI
UCHITAKE 1:add7d2b18162 10
UCHITAKE 1:add7d2b18162 11 /**
UCHITAKE 1:add7d2b18162 12 * Includes
UCHITAKE 1:add7d2b18162 13 */
UCHITAKE 0:979565e955a5 14 #include "mbed.h"
UCHITAKE 1:add7d2b18162 15
UCHITAKE 1:add7d2b18162 16 /**
UCHITAKE 1:add7d2b18162 17 * Defines
UCHITAKE 1:add7d2b18162 18 */
UCHITAKE 0:979565e955a5 19 #define M_PI 3.141592653589793
UCHITAKE 1:add7d2b18162 20
UCHITAKE 1:add7d2b18162 21 /**
UCHITAKE 1:add7d2b18162 22 * omni wheel
UCHITAKE 1:add7d2b18162 23 */
UCHITAKE 0:979565e955a5 24 class Omni {
UCHITAKE 1:add7d2b18162 25 public:
UCHITAKE 1:add7d2b18162 26
UCHITAKE 1:add7d2b18162 27 /**
UCHITAKE 1:add7d2b18162 28 * Constructor.
UCHITAKE 1:add7d2b18162 29 *
UCHITAKE 1:add7d2b18162 30 * @param wheels 車輪数(3or4)
UCHITAKE 1:add7d2b18162 31 * @param initDegree 正面から車輪の角度
UCHITAKE 1:add7d2b18162 32 */
UCHITAKE 0:979565e955a5 33 Omni(int wheels, double initDegree);
UCHITAKE 1:add7d2b18162 34
UCHITAKE 1:add7d2b18162 35 /**
UCHITAKE 1:add7d2b18162 36 * 位置ベクトル(x, y), 回転量から出力を計算
UCHITAKE 1:add7d2b18162 37 *
UCHITAKE 1:add7d2b18162 38 * @param parallelVector[] [x, y](-1 ~ 1)
UCHITAKE 1:add7d2b18162 39 * @param moment 回転量(-1 ~ 1)
UCHITAKE 1:add7d2b18162 40 *
UCHITAKE 1:add7d2b18162 41 * @return 1...success 0...failure
UCHITAKE 1:add7d2b18162 42 */
UCHITAKE 1:add7d2b18162 43 bool computeXY(double parallelVector[], double moment);
UCHITAKE 1:add7d2b18162 44
UCHITAKE 1:add7d2b18162 45 /**
UCHITAKE 1:add7d2b18162 46 * 角度, 大きさ(θ, volume), 回転量から出力を計算
UCHITAKE 1:add7d2b18162 47 *
UCHITAKE 1:add7d2b18162 48 * @param parallelVector[] [θ(degree), volume] volume...(-1 ~ 1)
UCHITAKE 1:add7d2b18162 49 * @param moment 回転量(-1 ~ 1)
UCHITAKE 1:add7d2b18162 50 * @return 1...success 0...failure
UCHITAKE 1:add7d2b18162 51 */
UCHITAKE 1:add7d2b18162 52 bool computePolar(double parallelVector[], double moment);
UCHITAKE 1:add7d2b18162 53
UCHITAKE 1:add7d2b18162 54 /**
UCHITAKE 1:add7d2b18162 55 * 全ての出力を0にする
UCHITAKE 1:add7d2b18162 56 *
UCHITAKE 1:add7d2b18162 57 * @return 1...success 0...failure
UCHITAKE 1:add7d2b18162 58 */
UCHITAKE 0:979565e955a5 59 bool stop();
UCHITAKE 1:add7d2b18162 60
UCHITAKE 1:add7d2b18162 61 /**
UCHITAKE 1:add7d2b18162 62 * ホイール数を設定
UCHITAKE 1:add7d2b18162 63 *
UCHITAKE 1:add7d2b18162 64 * @param wheel ホイール数
UCHITAKE 1:add7d2b18162 65 */
UCHITAKE 1:add7d2b18162 66 void setWheels(int wheel);
UCHITAKE 1:add7d2b18162 67
UCHITAKE 1:add7d2b18162 68 /**
UCHITAKE 1:add7d2b18162 69 * 正面から車輪の角度を設定
UCHITAKE 1:add7d2b18162 70 *
UCHITAKE 1:add7d2b18162 71 * @param degree 正面から車輪の角度
UCHITAKE 1:add7d2b18162 72 */
UCHITAKE 0:979565e955a5 73 void setInitDegree(double degree);
UCHITAKE 1:add7d2b18162 74
UCHITAKE 1:add7d2b18162 75 /**
UCHITAKE 1:add7d2b18162 76 * 出力値を取得
UCHITAKE 2:9670cf9549aa 77 * @param wheel wheel番目のホイールの出力を設定
UCHITAKE 1:add7d2b18162 78 * @return 出力値
UCHITAKE 1:add7d2b18162 79 */
UCHITAKE 0:979565e955a5 80 double getOutput(int wheel);
UCHITAKE 0:979565e955a5 81
UCHITAKE 0:979565e955a5 82 private:
UCHITAKE 0:979565e955a5 83 int wheels;
UCHITAKE 0:979565e955a5 84 double initDegree;
UCHITAKE 0:979565e955a5 85 double wheel[4];
UCHITAKE 0:979565e955a5 86 };
UCHITAKE 0:979565e955a5 87
UCHITAKE 1:add7d2b18162 88 #endif /* OMNI */