test

Dependencies:   mbed ros_lib_kinetic nhk19mr2_can_info splitData SerialHalfDuplex_HM

Committer:
shimizuta
Date:
Mon Mar 04 23:41:48 2019 +0000
Revision:
39:87dcdff27797
Parent:
35:b4e1b8f25cd7
made FourPoint at OVERCOME;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shimizuta 35:b4e1b8f25cd7 1 #ifndef INCLUDED_TRIANGLE_H
shimizuta 35:b4e1b8f25cd7 2 #define INCLUDED_TRIANGLE_H
shimizuta 35:b4e1b8f25cd7 3 #include "OneLeg.h"
shimizuta 35:b4e1b8f25cd7 4 enum TriangleParams
shimizuta 35:b4e1b8f25cd7 5 {
shimizuta 35:b4e1b8f25cd7 6 OFFSET_X_M,
shimizuta 35:b4e1b8f25cd7 7 OFFSET_Y_M,
shimizuta 35:b4e1b8f25cd7 8 STRIDE_M,
shimizuta 35:b4e1b8f25cd7 9 HEIGHT_M,
shimizuta 35:b4e1b8f25cd7 10 BUFFER_HEIGHT_M,
shimizuta 35:b4e1b8f25cd7 11 };
shimizuta 35:b4e1b8f25cd7 12 //下記の論文を参照
shimizuta 35:b4e1b8f25cd7 13 //https://static1.squarespace.com/static/542ddec8e4b0158794bd1036/t/5a861d1cc83025f3d460dfc3/1518738728029/gait-design-optimization-Final.pdf
shimizuta 35:b4e1b8f25cd7 14 class Triangle
shimizuta 35:b4e1b8f25cd7 15 {
shimizuta 39:87dcdff27797 16 protected:
shimizuta 39:87dcdff27797 17 float beta_degree_; //論文のβ
shimizuta 35:b4e1b8f25cd7 18 float offset_x_m_;
shimizuta 35:b4e1b8f25cd7 19 float offset_y_m_;
shimizuta 35:b4e1b8f25cd7 20 float stride_m_;
shimizuta 35:b4e1b8f25cd7 21 float height_m_; //足上げ幅
shimizuta 35:b4e1b8f25cd7 22 float buffer_height_m_; //着地直前で止める高さ
shimizuta 35:b4e1b8f25cd7 23 float stridetime_s_;
shimizuta 35:b4e1b8f25cd7 24 float toptime_s_; //頂点に行くまでの時間
shimizuta 35:b4e1b8f25cd7 25 float buffer_time_s_; //一時停止点から着地するまでの時間.
shimizuta 35:b4e1b8f25cd7 26
shimizuta 39:87dcdff27797 27 float reverse_tanbeta_; //論文のβのtan
shimizuta 35:b4e1b8f25cd7 28 float top_x_m_, top_y_m_, buffer_x_m_, buffer_y_m_; //事前に計算して保存しておく
shimizuta 35:b4e1b8f25cd7 29 int StrideLine_(OneLeg &leg, float phasetime_s); //着地している間の軌道
shimizuta 35:b4e1b8f25cd7 30 int StrideLineAccel_(OneLeg &leg, float phasetime_s); //着地中に慣性力を考慮して加減速
shimizuta 35:b4e1b8f25cd7 31
shimizuta 35:b4e1b8f25cd7 32 public:
shimizuta 35:b4e1b8f25cd7 33 void CalOtherParam();
shimizuta 35:b4e1b8f25cd7 34 void SetTriangleParam(float offset_x_m, float offset_y_m, float stride_m, float height_m, float buffer_height_m,
shimizuta 35:b4e1b8f25cd7 35 float stridetime_s, float toptime_s, float buffer_time_s);
shimizuta 35:b4e1b8f25cd7 36 int GetOrbit(OneLeg &leg, float phasetime_s);
shimizuta 35:b4e1b8f25cd7 37 float GetOneWalkTime(); //足一周の時間
shimizuta 35:b4e1b8f25cd7 38 void ChangeOneParam(TriangleParams param, float val);
shimizuta 35:b4e1b8f25cd7 39 void Copy(const Triangle &origin);
shimizuta 35:b4e1b8f25cd7 40 };
shimizuta 35:b4e1b8f25cd7 41
shimizuta 39:87dcdff27797 42 class FourPoint : public Triangle
shimizuta 39:87dcdff27797 43 {
shimizuta 39:87dcdff27797 44 void CalOtherParam();
shimizuta 39:87dcdff27797 45
shimizuta 39:87dcdff27797 46 public:
shimizuta 39:87dcdff27797 47 void SetFourPointParam(float offset_x_m, float offset_y_m, float stride_m, float height_m, float buffer_height_m,
shimizuta 39:87dcdff27797 48 float stridetime_s, float toptime_s, float buffer_time_s);
shimizuta 39:87dcdff27797 49 };
shimizuta 35:b4e1b8f25cd7 50 #endif