test
Dependencies: mbed ros_lib_kinetic nhk19mr2_can_info splitData SerialHalfDuplex_HM
Diff: Walk/Walk.h
- Revision:
- 13:e7ecdb20665a
- Parent:
- 11:e81425872740
- Child:
- 14:d7cb429946f4
diff -r 2ac37fe6c3bb -r e7ecdb20665a Walk/Walk.h --- a/Walk/Walk.h Mon Feb 11 13:32:46 2019 +0000 +++ b/Walk/Walk.h Tue Feb 12 07:51:07 2019 +0000 @@ -2,22 +2,27 @@ #define INCLUDED_WALK_H #include "OneLeg.h" -//足の軌道を設定するクラス。 +//足の軌道を設定するクラス。軌道は様々であることを考慮してコンストラクタでの代入は控えたい class Orbit { + int orbitType; float stridetime_s_; float risetime_s_; float stride_m_; float height_m_; //足の上げ幅 float ground_m_; //着地するときの高さ - OneLeg StrideLine_(OneLeg leg, float phasetime_s); + OneLeg StrideLine_(OneLeg leg, float phasetime_s);//時間をもとに位置を取得したインスタンスを直接返して代入させる OneLeg RiseEllipse_(OneLeg leg, float phasetime_s); - OneLeg OrbitEllipse_(OneLeg leg, float phasetime_s); + OneLeg OrbitEllipse_(OneLeg leg, float phasetime_s);//Stride, Riseを組み合わせて周期を作る public: Orbit(){}; - Orbit(float stridetime_s, float risetime_s, float stride_m, float height_m, float ground_m); + //コンストラクタは代入のみ + Orbit(int orbitType); + //このクラスのメイン privateへのアクセス関数 OneLeg GetOrbit(OneLeg leg, float phasetime_s); + + void SetStraightParam(float stridetime_s, float risetime_s, float stride_m, float height_m, float ground_m); float GetOneWalkTime(); //足一周の時間 }; @@ -28,9 +33,14 @@ float offsettime_s_[4]; public: + //4脚の軌道, 位相を代入して歩行方法を確定する + //コンストラクタではメンバの代入のみ行っている Walk(Orbit orbit[4], float offsettime_s[4], float cycletime_s); - float cycletime_s_; + float cycletime_s_;//計算周期 Orbit orbit_[4]; + //参照渡しされたonelegそれぞれにorbit_::GetOrbit関数を代入 + //GetOrbit関数にて軌道, 時間をもとに位置を決める + //直接参照しているのはこの関数だけ void Cal4LegsPosi(OneLeg (&leg)[4]); }; #endif \ No newline at end of file