test
Dependencies: mbed ros_lib_kinetic nhk19mr2_can_info splitData SerialHalfDuplex_HM
Diff: Walk/Walk.cpp
- Revision:
- 18:0033ef1814ba
- Parent:
- 14:d7cb429946f4
- Child:
- 19:1adc7302cfd9
--- a/Walk/Walk.cpp Wed Feb 13 07:49:24 2019 +0000 +++ b/Walk/Walk.cpp Thu Feb 14 09:04:25 2019 +0000 @@ -7,6 +7,7 @@ { orbitType_ = orbitType; } + void Orbit::SetStraightParam(float stridetime_s, float risetime_s, float stride_m, float height_m, float ground_m) { stridetime_s_ = stridetime_s; @@ -14,12 +15,22 @@ stride_m_ = stride_m; height_m_ = height_m; ground_m_ = ground_m; + offset_x_m_ = 0; +} +void Orbit::SetStraightParam(float stridetime_s, float risetime_s, float stride_m, float height_m, float ground_m, float offset_x_m) +{ + stridetime_s_ = stridetime_s; + risetime_s_ = risetime_s; + stride_m_ = stride_m; + height_m_ = height_m; + ground_m_ = ground_m; + offset_x_m_ = offset_x_m; } //着地中の動き.直線軌道.等速 OneLeg Orbit::StrideLine_(OneLeg leg, float phasetime_s) { - float x_m = -stride_m_ * phasetime_s / stridetime_s_ + stride_m_ * 0.5; + float x_m = -stride_m_ * phasetime_s / stridetime_s_ + stride_m_ * 0.5 - offset_x_m_; float y_m = ground_m_; leg.SetXY_m(x_m, y_m); return leg; @@ -28,7 +39,7 @@ OneLeg Orbit::RiseEllipse_(OneLeg leg, float phasetime_s) { float rad = M_PI * (phasetime_s - stridetime_s_) / risetime_s_ + M_PI; - float x_m = stride_m_ * 0.5 * cos(rad); + float x_m = stride_m_ * 0.5 * cos(rad) - offset_x_m_; float y_m = height_m_ * sin(rad) + ground_m_; leg.SetXY_m(x_m, y_m); return leg;