test

Dependencies:   mbed ros_lib_kinetic nhk19mr2_can_info splitData SerialHalfDuplex_HM

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;