test

Dependencies:   mbed ros_lib_kinetic nhk19mr2_can_info splitData SerialHalfDuplex_HM

Revision:
38:e664b1c12da9
Parent:
37:e4b37af4d8c7
Child:
39:87dcdff27797
--- a/main.cpp	Mon Mar 04 10:02:45 2019 +0000
+++ b/main.cpp	Mon Mar 04 10:51:46 2019 +0000
@@ -118,6 +118,8 @@
     }
     return walk.CheckOrbit();
 }
+Walk* walk;
+OneLeg leg[4]; //各足の位置
 
 int main()
 {
@@ -125,19 +127,19 @@
     if (FileOpen()) //csv fileに書き込み
         return 1;   //異常終了したら強制終了
 #endif
-    OneLeg leg[4]; //各足の位置
+    
     for (int i = 0; i < 4; i++)
         leg[i] = OneLeg(kBetweenServoHalf_m, kLegLength1, kLegLength2);
-    Walk walk(leg); //歩行法はここに入れていく
+    walk = new Walk(leg); //歩行法はここに入れていく
     Walk::calctime_s_ = 0.03;
     printf("Stand up?\r\n");
     WaitStdin('y'); // ボタンを押したら立つ
-    if (SetWalk(walk, STANDUP) == 1)
+    if (SetWalk(*walk, STANDUP) == 1)
     {
         printf("error: stand move\r\n");
         return 1; //強制終了.errorは内部の関数からprintfで知らせる
     }
-    if (MoveOneCycle(walk, leg) == 1)
+    if (MoveOneCycle(*walk, leg) == 1)
     {
         printf("error: stand move\r\n");
         return 1; //強制終了.errorは内部の関数からprintfで知らせる
@@ -150,12 +152,10 @@
     nh_mbed.subscribe(sub_vel);
     while (1){
         nh_mbed.spinOnce();
-            SetWalk(walk, LRFPOSTURE);
-    MoveOneCycle(walk, leg);
-    }
+            }
 #else
 
-    if (SetWalk(walk, FRONTLEG_ON_SANDDUNE) == 1)
+    if (SetWalk(*walk, FRONTLEG_ON_SANDDUNE) == 1)
     {
         printf("error: triangle\r\n");
         return 1; //強制終了.errorは内部の関数からprintfで知らせる
@@ -163,7 +163,7 @@
 
     for (int i = 0; i < 2; i++)
     {
-        if (MoveOneCycle(walk, leg) == 1)
+        if (MoveOneCycle(*walk, leg) == 1)
         {
             printf("error: triangle move\r\n");
             return 1; //強制終了.errorは内部の関数からprintfで知らせる
@@ -171,7 +171,7 @@
     }
     offset_y_m[LEFT_F] = 0.29;
     offset_y_m[RIGHT_F] = 0.29;
-    if (SetWalk(walk, LRFPOSTURE) == 1)
+    if (SetWalk(*walk, LRFPOSTURE) == 1)
     {
         printf("error: triangle\r\n");
         return 1; //強制終了.errorは内部の関数からprintfで知らせる
@@ -179,7 +179,7 @@
 
     for (int i = 0; i < 20; i++)
     {
-        if (MoveOneCycle(walk, leg) == 1)
+        if (MoveOneCycle(*walk, leg) == 1)
         {
             printf("error: triangle move\r\n");
             return 1; //強制終了.errorは内部の関数からprintfで知らせる
@@ -294,6 +294,7 @@
         stride_m[LEFT_B] = 0.2;
         stride_m[RIGHT_B] = 0.2;
     }
-
+    SetWalk(*walk, LRFPOSTURE);
+    MoveOneCycle(*walk, leg);
 }
 #endif
\ No newline at end of file