omni wheel library

Dependents:   quadOmni_yanagi NHK2017_octopus hayatoShooter

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

Committer:
UCHITAKE
Date:
Wed Aug 23 07:26:26 2017 +0000
Revision:
10:4f0b55344c73
Parent:
4:926be1e5e9a1
fix commit

Who changed what in which revision?

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