s-shape control

Dependents:   wheel_test7 2019NHK_A_manual_red 2019NHK_A_manual_blue

Committer:
ec30109b
Date:
Fri Oct 04 08:21:13 2019 +0000
Revision:
9:4a72ba990137
Parent:
7:c9707baaf007
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
piroro4560 1:ad711893a3a7 1 #ifndef PROTO01_H
piroro4560 1:ad711893a3a7 2 #define PROTO01_H
piroro4560 0:92d6abcc2b52 3 #define PI 3.141592653589793238462643383219502884
ec30109b 9:4a72ba990137 4
piroro4560 0:92d6abcc2b52 5 #include "mbed.h"
ec30109b 9:4a72ba990137 6
piroro4560 2:95ef998b5a62 7 /**
piroro4560 2:95ef998b5a62 8 * S字制御クラス
piroro4560 2:95ef998b5a62 9 */
piroro4560 3:c46f084010aa 10 class Proto1 {
piroro4560 4:40c5ac00bb5b 11 public:
ec30109b 9:4a72ba990137 12
piroro4560 4:40c5ac00bb5b 13 /**
piroro4560 4:40c5ac00bb5b 14 * コンストラクタ
piroro4560 4:40c5ac00bb5b 15 * @param accdis_ 加速距離
piroro4560 4:40c5ac00bb5b 16 * @param decdis_ 減速距離(誤差あり。大きめに調整すると良い)
piroro4560 4:40c5ac00bb5b 17 * @param maxspeed_ 最大速度(?)
piroro4560 4:40c5ac00bb5b 18 */
piroro4560 4:40c5ac00bb5b 19 Proto1(double accdis_, double decdis_, double maxspeed_, double s_vector_);
ec30109b 9:4a72ba990137 20
piroro4560 4:40c5ac00bb5b 21 /**
piroro4560 4:40c5ac00bb5b 22 * 目標点を設定する
piroro4560 4:40c5ac00bb5b 23 * @param target_ 目標点
piroro4560 4:40c5ac00bb5b 24 * @param start_ 開始地点
piroro4560 4:40c5ac00bb5b 25 */
piroro4560 4:40c5ac00bb5b 26 void target(double target_, double start_);
ec30109b 9:4a72ba990137 27
piroro4560 4:40c5ac00bb5b 28 /**
piroro4560 4:40c5ac00bb5b 29 * xy座標で目標点を設定する
piroro4560 4:40c5ac00bb5b 30 * @param targetx_ 目標点のx座標
piroro4560 4:40c5ac00bb5b 31 * @param targety_ 目標点のy座標
piroro4560 4:40c5ac00bb5b 32 * @param startx_ 開始地点のx座標
piroro4560 4:40c5ac00bb5b 33 * @param starty_ 開始地点のy座標
piroro4560 4:40c5ac00bb5b 34 */
ec30109b 5:8dce5092a719 35 void targetXY(int targetx_, int targety_, int startx_, int starty_);
ec30109b 9:4a72ba990137 36
piroro4560 4:40c5ac00bb5b 37 /**
piroro4560 4:40c5ac00bb5b 38 * 現在地点を入力
piroro4560 4:40c5ac00bb5b 39 * @param now_ 現在地点
piroro4560 4:40c5ac00bb5b 40 */
piroro4560 4:40c5ac00bb5b 41 void Input_now(double now_);
ec30109b 9:4a72ba990137 42
piroro4560 4:40c5ac00bb5b 43 /**
piroro4560 4:40c5ac00bb5b 44 * 現在地点を入力
piroro4560 4:40c5ac00bb5b 45 * @param now_x 現在地点のx座標
piroro4560 4:40c5ac00bb5b 46 * @param now_y 現在地点のy座標
piroro4560 4:40c5ac00bb5b 47 */
ec30109b 5:8dce5092a719 48 void Input_nowXY(int now_x, int now_y);
ec30109b 9:4a72ba990137 49
piroro4560 4:40c5ac00bb5b 50 /**
piroro4560 4:40c5ac00bb5b 51 * S字に変化する速度を計算
piroro4560 4:40c5ac00bb5b 52 */
piroro4560 4:40c5ac00bb5b 53 void calculate();
ec30109b 9:4a72ba990137 54
piroro4560 4:40c5ac00bb5b 55 /**
piroro4560 4:40c5ac00bb5b 56 * x方向のベクトルを返す
piroro4560 4:40c5ac00bb5b 57 */
piroro4560 4:40c5ac00bb5b 58 double getvalue_x();
ec30109b 9:4a72ba990137 59
piroro4560 4:40c5ac00bb5b 60 /**
piroro4560 4:40c5ac00bb5b 61 * y方向のベクトルを返す
piroro4560 4:40c5ac00bb5b 62 */
piroro4560 4:40c5ac00bb5b 63 double getvalue_y();
ec30109b 9:4a72ba990137 64
piroro4560 4:40c5ac00bb5b 65 /**
piroro4560 4:40c5ac00bb5b 66 * そのまま返す
piroro4560 4:40c5ac00bb5b 67 */
piroro4560 4:40c5ac00bb5b 68 double getvalue();
ec30109b 9:4a72ba990137 69
piroro4560 4:40c5ac00bb5b 70 double accdis;
piroro4560 4:40c5ac00bb5b 71 double decdis;
piroro4560 4:40c5ac00bb5b 72 double accdis2;
piroro4560 4:40c5ac00bb5b 73 double decdis2;
piroro4560 4:40c5ac00bb5b 74 double accsec;
piroro4560 4:40c5ac00bb5b 75 double decsec;
piroro4560 4:40c5ac00bb5b 76 double maxspeed;
piroro4560 4:40c5ac00bb5b 77 double maxspeed2;
ec30109b 9:4a72ba990137 78
piroro4560 4:40c5ac00bb5b 79 double s_vector;
piroro4560 4:40c5ac00bb5b 80 double vector;
ec30109b 9:4a72ba990137 81
piroro4560 4:40c5ac00bb5b 82 double startx;
piroro4560 4:40c5ac00bb5b 83 double starty;
piroro4560 4:40c5ac00bb5b 84 double start;
piroro4560 4:40c5ac00bb5b 85 double nowx;
piroro4560 4:40c5ac00bb5b 86 double nowy;
piroro4560 4:40c5ac00bb5b 87 double now;
ec30109b 9:4a72ba990137 88
piroro4560 4:40c5ac00bb5b 89 double targetDis;
piroro4560 4:40c5ac00bb5b 90 double targetRad;
piroro4560 4:40c5ac00bb5b 91 double targetx;
piroro4560 4:40c5ac00bb5b 92 double targety;
piroro4560 4:40c5ac00bb5b 93 double nowDis;
ec30109b 9:4a72ba990137 94 //consdis : 一定速度で走るところ
piroro4560 4:40c5ac00bb5b 95 double consdis;
piroro4560 4:40c5ac00bb5b 96 double counter;
ec30109b 9:4a72ba990137 97
piroro4560 0:92d6abcc2b52 98 };
piroro4560 0:92d6abcc2b52 99
piroro4560 0:92d6abcc2b52 100 #endif