omni wheel library

Dependents:   quadOmni_yanagi NHK2017_octopus hayatoShooter

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

Committer:
UCHITAKE
Date:
Wed Aug 23 07:24:34 2017 +0000
Revision:
9:a30169882a15
Parent:
0:979565e955a5
new version; plz read doc

Who changed what in which revision?

UserRevisionLine numberNew contents of line
UCHITAKE 9:a30169882a15 1 /**
UCHITAKE 9:a30169882a15 2 * @file omni.h
UCHITAKE 9:a30169882a15 3 * @author keitaro takeuchi
UCHITAKE 9:a30169882a15 4 *
UCHITAKE 9:a30169882a15 5 * @section DESCRIPTION
UCHITAKE 9:a30169882a15 6 * 3or4wheels omni libraryfor NHK2017.
UCHITAKE 9:a30169882a15 7 */
UCHITAKE 9:a30169882a15 8 #ifndef OMNI_H
UCHITAKE 9:a30169882a15 9 #define OMNI_H
UCHITAKE 0:979565e955a5 10
UCHITAKE 9:a30169882a15 11 /**
UCHITAKE 9:a30169882a15 12 * Includes
UCHITAKE 9:a30169882a15 13 */
UCHITAKE 0:979565e955a5 14 #include "mbed.h"
UCHITAKE 0:979565e955a5 15
UCHITAKE 9:a30169882a15 16 /**
UCHITAKE 9:a30169882a15 17 * Defines
UCHITAKE 9:a30169882a15 18 */
UCHITAKE 0:979565e955a5 19 #define M_PI 3.141592653589793
UCHITAKE 0:979565e955a5 20
UCHITAKE 9:a30169882a15 21 /**
UCHITAKE 9:a30169882a15 22 * omni wheel
UCHITAKE 9:a30169882a15 23 */
UCHITAKE 0:979565e955a5 24 class Omni {
UCHITAKE 9:a30169882a15 25 public :
UCHITAKE 0:979565e955a5 26
UCHITAKE 9:a30169882a15 27 /**
UCHITAKE 9:a30169882a15 28 * Constructor.
UCHITAKE 9:a30169882a15 29 *
UCHITAKE 9:a30169882a15 30 * @param wheels 車輪数(3or4)
UCHITAKE 9:a30169882a15 31 */
UCHITAKE 9:a30169882a15 32 Omni(int wheels);
UCHITAKE 9:a30169882a15 33
UCHITAKE 9:a30169882a15 34 /**
UCHITAKE 9:a30169882a15 35 * ホイールの付いている角度を設定
UCHITAKE 9:a30169882a15 36 *
UCHITAKE 9:a30169882a15 37 * @param rad radian
UCHITAKE 9:a30169882a15 38 * @param wheelNumber 番目のホイール
UCHITAKE 9:a30169882a15 39 */
UCHITAKE 9:a30169882a15 40 bool setWheelRadian(float rad1, float rad2, float rad3);
UCHITAKE 9:a30169882a15 41 bool setWheelRadian(float rad1, float rad2, float rad3, float rad4);
UCHITAKE 9:a30169882a15 42 bool setWheelRadian(int wheelNumber, float rad);
UCHITAKE 9:a30169882a15 43
UCHITAKE 9:a30169882a15 44 /**
UCHITAKE 9:a30169882a15 45 * 位置ベクトル(x, y), 回転量から出力を計算
UCHITAKE 9:a30169882a15 46 *
UCHITAKE 9:a30169882a15 47 * @param X(-1 ~ 1)
UCHITAKE 9:a30169882a15 48 * @param Y(-1 ~ 1)
UCHITAKE 9:a30169882a15 49 * @param moment 回転量(-1 ~ 1)
UCHITAKE 9:a30169882a15 50 *
UCHITAKE 9:a30169882a15 51 * @return 1...success 0...failure
UCHITAKE 9:a30169882a15 52 */
UCHITAKE 9:a30169882a15 53 bool computeXY(float X, float Y, float moment);
UCHITAKE 9:a30169882a15 54
UCHITAKE 9:a30169882a15 55 /**
UCHITAKE 9:a30169882a15 56 * 半径, 角度radian(r, Θ), 回転量から出力を計算
UCHITAKE 9:a30169882a15 57 *
UCHITAKE 9:a30169882a15 58 * @param r 半径(0 ~ 1)
UCHITAKE 9:a30169882a15 59 * @param rad radian(-PI ~ PI)
UCHITAKE 9:a30169882a15 60 * @param moment 回転量(-1 ~ 1)
UCHITAKE 9:a30169882a15 61 * @return 1...success 0...failure
UCHITAKE 9:a30169882a15 62 */
UCHITAKE 9:a30169882a15 63 bool computeCircular(float r, float rad, float moment);
UCHITAKE 9:a30169882a15 64
UCHITAKE 9:a30169882a15 65 /**
UCHITAKE 9:a30169882a15 66 * 出力値を取得
UCHITAKE 9:a30169882a15 67 *
UCHITAKE 9:a30169882a15 68 * @param wheelNumber wheel番目のホイールの出力を設定
UCHITAKE 9:a30169882a15 69 *
UCHITAKE 9:a30169882a15 70 * @return 出力値
UCHITAKE 9:a30169882a15 71 */
UCHITAKE 9:a30169882a15 72 float getOutput(int wheelNumber);
UCHITAKE 9:a30169882a15 73 private :
UCHITAKE 9:a30169882a15 74 protected :
UCHITAKE 0:979565e955a5 75 int wheels;
UCHITAKE 9:a30169882a15 76 float wheel[4];
UCHITAKE 9:a30169882a15 77 float radian[4];
UCHITAKE 0:979565e955a5 78 };
UCHITAKE 0:979565e955a5 79
UCHITAKE 9:a30169882a15 80 #endif//OMNI_H