omni wheel library

Dependents:   quadOmni_yanagi NHK2017_octopus hayatoShooter

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

Committer:
UCHITAKE
Date:
Tue Jul 04 17:59:29 2017 +0900
Revision:
4:926be1e5e9a1
Parent:
3:413f27170090
Child:
10:4f0b55344c73
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 4:926be1e5e9a1 77 *
UCHITAKE 3:413f27170090 78 * @param wheel wheel番目のホイールの出力を設定
UCHITAKE 4:926be1e5e9a1 79 *
UCHITAKE 1:add7d2b18162 80 * @return 出力値
UCHITAKE 1:add7d2b18162 81 */
UCHITAKE 0:979565e955a5 82 double getOutput(int wheel);
UCHITAKE 0:979565e955a5 83
UCHITAKE 0:979565e955a5 84 private:
UCHITAKE 0:979565e955a5 85 int wheels;
UCHITAKE 0:979565e955a5 86 double initDegree;
UCHITAKE 0:979565e955a5 87 double wheel[4];
UCHITAKE 0:979565e955a5 88 };
UCHITAKE 0:979565e955a5 89
UCHITAKE 1:add7d2b18162 90 #endif /* OMNI */