test
Dependencies: mbed ros_lib_kinetic nhk19mr2_can_info splitData SerialHalfDuplex_HM
Diff: Walk/Walk.cpp
- Revision:
- 24:dec983da455c
- Parent:
- 23:97f34a7dc63c
- Child:
- 26:24ae5a4f5b1f
diff -r 97f34a7dc63c -r dec983da455c Walk/Walk.cpp --- a/Walk/Walk.cpp Mon Feb 18 03:05:27 2019 +0000 +++ b/Walk/Walk.cpp Mon Feb 18 10:20:09 2019 +0000 @@ -40,8 +40,16 @@ OneLeg Orbit::StrideLineAccel_(OneLeg leg, float phasetime_s) { ///////////x,yを計算.注:計算は正しくないので直す必要がある。 - float x_m = -stride_m_ * phasetime_s / stridetime_s_ + stride_m_ * 0.5 + ellipse_center_x_m_; - float y_m = ellipse_center_y_m_; + float s0=stride_m_*0.5+ellipse_center_x_m_ + float s1=-stride_m_*0.5+ellipse_center_x_m_ + + float gravity=9.8; + float g_h=sqrtf(gravity/ground_m_); + float t=phasetime_s/stride_time_s_; + float denominator=expf(g_h)-expf(-g_h);//分母 + + float x_m = -(s0*expf(-g_h)-s1)*expf(g_h*t)/denominator + (s0*expf(g_h)-s1)*expf(-g_h*t)/denominator; + float y_m = ground_m_; /////////// //x,yを代入 leg.SetXY_m(x_m, y_m);