omniwheel lib

Dependents:   NHK2017_octopus NHK2017_octopus2 NHK2017_octopus2_drive 2018NHK_gakugaku_robo ... more

Committer:
shinjitakano
Date:
Mon Jan 21 17:57:44 2019 +0900
Revision:
5:cfec945ea421
Parent:
2:9d972b2dad0f
wheel.cpp???????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
UCHITAKE 0:952a0ff1bf46 1 #ifndef WHEEL_H
UCHITAKE 0:952a0ff1bf46 2 #define WHEEL_H
UCHITAKE 0:952a0ff1bf46 3
UCHITAKE 0:952a0ff1bf46 4 #include "mbed.h"
UCHITAKE 0:952a0ff1bf46 5
UCHITAKE 0:952a0ff1bf46 6 class Wheel {
UCHITAKE 0:952a0ff1bf46 7 public:
UCHITAKE 1:e9b590a5b27a 8
UCHITAKE 1:e9b590a5b27a 9 /**
UCHITAKE 1:e9b590a5b27a 10 * デフォルトコンストラクタ
UCHITAKE 1:e9b590a5b27a 11 */
UCHITAKE 0:952a0ff1bf46 12 Wheel();
UCHITAKE 1:e9b590a5b27a 13
UCHITAKE 1:e9b590a5b27a 14 /**
UCHITAKE 1:e9b590a5b27a 15 * コンストラクタ
UCHITAKE 1:e9b590a5b27a 16 * @param radian 車輪角
UCHITAKE 1:e9b590a5b27a 17 */
UCHITAKE 0:952a0ff1bf46 18 Wheel(double radian);
UCHITAKE 1:e9b590a5b27a 19
UCHITAKE 1:e9b590a5b27a 20 /**
UCHITAKE 1:e9b590a5b27a 21 * コンストラクタ
UCHITAKE 1:e9b590a5b27a 22 * @param radian 車輪角
UCHITAKE 1:e9b590a5b27a 23 * @param distance 車輪距離
UCHITAKE 1:e9b590a5b27a 24 */
UCHITAKE 0:952a0ff1bf46 25 Wheel(double radian, double distance);
UCHITAKE 1:e9b590a5b27a 26
UCHITAKE 1:e9b590a5b27a 27 /**
UCHITAKE 1:e9b590a5b27a 28 * コピーコンストラクタ
UCHITAKE 1:e9b590a5b27a 29 * @param a wheelmember
UCHITAKE 1:e9b590a5b27a 30 */
UCHITAKE 0:952a0ff1bf46 31 Wheel(const Wheel &a);
UCHITAKE 1:e9b590a5b27a 32
UCHITAKE 1:e9b590a5b27a 33 /**
UCHITAKE 1:e9b590a5b27a 34 * 代入演算子
UCHITAKE 1:e9b590a5b27a 35 * @return wheeel member
UCHITAKE 1:e9b590a5b27a 36 */
UCHITAKE 0:952a0ff1bf46 37 Wheel &operator=(const Wheel &a);
UCHITAKE 1:e9b590a5b27a 38
UCHITAKE 1:e9b590a5b27a 39 /**
UCHITAKE 1:e9b590a5b27a 40 * 代入演算子
UCHITAKE 1:e9b590a5b27a 41 * @return 計算結果
UCHITAKE 1:e9b590a5b27a 42 */
UCHITAKE 0:952a0ff1bf46 43 Wheel &operator=(double value);
uchitake 2:9d972b2dad0f 44 /**
uchitake 2:9d972b2dad0f 45 * 代入演算子
uchitake 2:9d972b2dad0f 46 * @return 計算結果
uchitake 2:9d972b2dad0f 47 */
uchitake 2:9d972b2dad0f 48 Wheel &operator=(float value);
UCHITAKE 1:e9b590a5b27a 49
UCHITAKE 1:e9b590a5b27a 50 /**
UCHITAKE 1:e9b590a5b27a 51 * キャスト演算子
UCHITAKE 1:e9b590a5b27a 52 * @return 計算結果
UCHITAKE 1:e9b590a5b27a 53 */
UCHITAKE 0:952a0ff1bf46 54 operator double();
UCHITAKE 1:e9b590a5b27a 55
UCHITAKE 1:e9b590a5b27a 56 /**
UCHITAKE 1:e9b590a5b27a 57 * キャスト演算子
UCHITAKE 1:e9b590a5b27a 58 * @return 計算結果
UCHITAKE 1:e9b590a5b27a 59 */
UCHITAKE 0:952a0ff1bf46 60 operator float();
UCHITAKE 1:e9b590a5b27a 61
UCHITAKE 1:e9b590a5b27a 62 /**
UCHITAKE 1:e9b590a5b27a 63 * 車輪の角度を設定
UCHITAKE 1:e9b590a5b27a 64 * @param tRadian dadian
UCHITAKE 1:e9b590a5b27a 65 */
UCHITAKE 0:952a0ff1bf46 66 void setRadian(double tRadian);
UCHITAKE 1:e9b590a5b27a 67
UCHITAKE 1:e9b590a5b27a 68 /**
UCHITAKE 1:e9b590a5b27a 69 * 車輪の距離を設定
UCHITAKE 1:e9b590a5b27a 70 * @param tDistance distance
UCHITAKE 1:e9b590a5b27a 71 */
UCHITAKE 0:952a0ff1bf46 72 void setDistance(double tDistance);
UCHITAKE 1:e9b590a5b27a 73
UCHITAKE 1:e9b590a5b27a 74 /**
UCHITAKE 1:e9b590a5b27a 75 * 出力値を設定
UCHITAKE 1:e9b590a5b27a 76 * @param value output
UCHITAKE 1:e9b590a5b27a 77 */
UCHITAKE 0:952a0ff1bf46 78 void setOutput(double value);
UCHITAKE 1:e9b590a5b27a 79
UCHITAKE 1:e9b590a5b27a 80 /**
UCHITAKE 1:e9b590a5b27a 81 * 平行移動出力計算
UCHITAKE 1:e9b590a5b27a 82 * @param r 距離
UCHITAKE 1:e9b590a5b27a 83 * @param theta 角度
UCHITAKE 1:e9b590a5b27a 84 * @return 出力値
UCHITAKE 1:e9b590a5b27a 85 */
UCHITAKE 0:952a0ff1bf46 86 double calculateShift(double r, double theta);
UCHITAKE 1:e9b590a5b27a 87
UCHITAKE 1:e9b590a5b27a 88 /**
UCHITAKE 1:e9b590a5b27a 89 * 回転移動出力計算
UCHITAKE 1:e9b590a5b27a 90 * @param X 回転中心X
UCHITAKE 1:e9b590a5b27a 91 * @param Y 回転中心Y
UCHITAKE 1:e9b590a5b27a 92 * @param value 回転量
UCHITAKE 1:e9b590a5b27a 93 * @return 出力値
UCHITAKE 1:e9b590a5b27a 94 */
UCHITAKE 0:952a0ff1bf46 95 double calculateRotate(double X, double Y, double value);
UCHITAKE 1:e9b590a5b27a 96
UCHITAKE 1:e9b590a5b27a 97 /**
UCHITAKE 1:e9b590a5b27a 98 * 出力値を取得
UCHITAKE 1:e9b590a5b27a 99 * @return 出力値(計算結果)
UCHITAKE 1:e9b590a5b27a 100 */
UCHITAKE 0:952a0ff1bf46 101 double getOutput();
UCHITAKE 0:952a0ff1bf46 102
UCHITAKE 0:952a0ff1bf46 103 private:
UCHITAKE 0:952a0ff1bf46 104 double radian;
UCHITAKE 0:952a0ff1bf46 105 double distance;
UCHITAKE 0:952a0ff1bf46 106 protected:
UCHITAKE 0:952a0ff1bf46 107 double outputShift;
UCHITAKE 0:952a0ff1bf46 108 double outputRotate;
UCHITAKE 0:952a0ff1bf46 109 double output;
UCHITAKE 0:952a0ff1bf46 110 };
UCHITAKE 0:952a0ff1bf46 111
UCHITAKE 0:952a0ff1bf46 112 #endif