test
Dependencies: mbed ros_lib_kinetic nhk19mr2_can_info splitData SerialHalfDuplex_HM
Diff: Walk/Walk.h
- Revision:
- 21:61971fc18b90
- Parent:
- 19:1adc7302cfd9
- Child:
- 22:787a764271dd
--- a/Walk/Walk.h Fri Feb 15 06:46:39 2019 +0000 +++ b/Walk/Walk.h Sat Feb 16 05:00:19 2019 +0000 @@ -1,32 +1,29 @@ #ifndef INCLUDED_WALK_H #define INCLUDED_WALK_H #include "OneLeg.h" -enum OrbitPattern -{ - ELLIPSE, -}; //足の軌道を設定するクラス。軌道は様々であることを考慮してコンストラクタでの代入は控えたい class Orbit { - OrbitPattern orbitType_; float stridetime_s_; float risetime_s_; float stride_m_; float height_m_; //足の上げ幅 - float offset_y_m_; //軌道の高さ - float offset_x_m_;//軌道のx方向のoffset + float ellipse_center_y_m_; //楕円軌道の中心高さ + float ellipse_center_x_m_; //楕円軌道の中心x座標 + float ground_m_; //地面の高さ OneLeg StrideLine_(OneLeg leg, float phasetime_s); //時間をもとに位置を取得したインスタンスを直接返して代入させる OneLeg RiseEllipse_(OneLeg leg, float phasetime_s); OneLeg OrbitEllipse_(OneLeg leg, float phasetime_s); //Stride, Riseを組み合わせて周期を作る + OneLeg RiseEllipse2_(OneLeg leg, float phasetime_s); public: Orbit(){}; - //コンストラクタは代入のみ.現状パターンは未実装 - Orbit(OrbitPattern orbitType); //このクラスのメイン privateへのアクセス関数 OneLeg GetOrbit(OneLeg leg, float phasetime_s); - void SetStraightParam(float stridetime_s, float risetime_s, float stride_m, float height_m, float offset_x_m, float offset_y_m); - void SetStandParam(float offset_y_m); + void SetStraightParam(float stridetime_s, float risetime_s, + float stride_m, float height_m, float ground_m, + float ellipse_center_x_m, float ellipse_center_y_m); + void SetStandParam(float ground_m); float GetOneWalkTime(); //足一周の時間 };