test
Dependencies: mbed ros_lib_kinetic nhk19mr2_can_info splitData SerialHalfDuplex_HM
Walk/orbit/triangle/triangle.h@35:b4e1b8f25cd7, 2019-03-04 (annotated)
- Committer:
- shimizuta
- Date:
- Mon Mar 04 09:54:47 2019 +0000
- Revision:
- 35:b4e1b8f25cd7
- Child:
- 39:87dcdff27797
new MR2;
Who changed what in which revision?
User | Revision | Line number | New 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 | 35:b4e1b8f25cd7 | 16 | float reverse_tanbeta_; //論文のβのtan |
shimizuta | 35:b4e1b8f25cd7 | 17 | float offset_x_m_; |
shimizuta | 35:b4e1b8f25cd7 | 18 | float offset_y_m_; |
shimizuta | 35:b4e1b8f25cd7 | 19 | float stride_m_; |
shimizuta | 35:b4e1b8f25cd7 | 20 | float height_m_; //足上げ幅 |
shimizuta | 35:b4e1b8f25cd7 | 21 | float buffer_height_m_; //着地直前で止める高さ |
shimizuta | 35:b4e1b8f25cd7 | 22 | float stridetime_s_; |
shimizuta | 35:b4e1b8f25cd7 | 23 | float toptime_s_; //頂点に行くまでの時間 |
shimizuta | 35:b4e1b8f25cd7 | 24 | float buffer_time_s_; //一時停止点から着地するまでの時間. |
shimizuta | 35:b4e1b8f25cd7 | 25 | |
shimizuta | 35:b4e1b8f25cd7 | 26 | float top_x_m_, top_y_m_, buffer_x_m_, buffer_y_m_; //事前に計算して保存しておく |
shimizuta | 35:b4e1b8f25cd7 | 27 | int StrideLine_(OneLeg &leg, float phasetime_s); //着地している間の軌道 |
shimizuta | 35:b4e1b8f25cd7 | 28 | int StrideLineAccel_(OneLeg &leg, float phasetime_s); //着地中に慣性力を考慮して加減速 |
shimizuta | 35:b4e1b8f25cd7 | 29 | |
shimizuta | 35:b4e1b8f25cd7 | 30 | public: |
shimizuta | 35:b4e1b8f25cd7 | 31 | void CalOtherParam(); |
shimizuta | 35:b4e1b8f25cd7 | 32 | void SetTriangleParam(float offset_x_m, float offset_y_m, float stride_m, float height_m, float buffer_height_m, |
shimizuta | 35:b4e1b8f25cd7 | 33 | float stridetime_s, float toptime_s, float buffer_time_s); |
shimizuta | 35:b4e1b8f25cd7 | 34 | int GetOrbit(OneLeg &leg, float phasetime_s); |
shimizuta | 35:b4e1b8f25cd7 | 35 | float GetOneWalkTime(); //足一周の時間 |
shimizuta | 35:b4e1b8f25cd7 | 36 | void ChangeOneParam(TriangleParams param, float val); |
shimizuta | 35:b4e1b8f25cd7 | 37 | void Copy(const Triangle &origin); |
shimizuta | 35:b4e1b8f25cd7 | 38 | }; |
shimizuta | 35:b4e1b8f25cd7 | 39 | |
shimizuta | 35:b4e1b8f25cd7 | 40 | #endif |