test

Dependencies:   mbed ros_lib_kinetic nhk19mr2_can_info splitData SerialHalfDuplex_HM

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);