/* ********************************************* */ /* Simplified Walking Program for 6legged Walker */ /* Thomas Braunl, Tong An, Dec. 2000 */ /* ********************************************* */ #include "eyebot.h" #define NumServos 12 ServoHandle servohandles[12]; /* Semantics for servos */ int semas[12] ={SER_LFUD,SER_LFFB,SER_RFUD,SER_RFFB,SER_LMUD,SER_LMFB, SER_RMUD,SER_RMFB,SER_LRUD,SER_LRFB,SER_RRUD,SER_RRFB}; #define MAXF 50 #define MAXU 60 #define CNTR 128 #define UPWD (CNTR+MAXU) #define DOWN (CNTR-MAXU) #define FORW (CNTR-MAXF) #define BACK (CNTR+MAXF) #define GaitForwardSize 6 int GaitForward[GaitForwardSize][12]= { {DOWN,FORW, UPWD,BACK, UPWD,BACK, DOWN,FORW, DOWN,FORW, UPWD,BACK}, {DOWN,FORW, DOWN,BACK, DOWN,BACK, DOWN,FORW, DOWN,FORW, DOWN,BACK}, {UPWD,FORW, DOWN,BACK, DOWN,BACK, UPWD,FORW, UPWD,FORW, DOWN,BACK}, {UPWD,BACK, DOWN,FORW, DOWN,FORW, UPWD,BACK, UPWD,BACK, DOWN,FORW}, {DOWN,BACK, DOWN,FORW, DOWN,FORW, DOWN,BACK, DOWN,BACK, DOWN,FORW}, {DOWN,BACK, UPWD,FORW, UPWD,FORW, DOWN,BACK, DOWN,BACK, UPWD,FORW}, }; #define GaitTurnRightSize 6 int GaitRight[GaitTurnRightSize][12]= { {DOWN,FORW, UPWD,FORW, UPWD,BACK, DOWN,BACK, DOWN,FORW, UPWD,FORW}, {DOWN,FORW, DOWN,FORW, DOWN,BACK, DOWN,BACK, DOWN,FORW, DOWN,FORW}, {UPWD,FORW, DOWN,FORW, DOWN,BACK, UPWD,BACK, UPWD,FORW, DOWN,FORW}, {UPWD,BACK, DOWN,BACK, DOWN,FORW, UPWD,FORW, UPWD,BACK, DOWN,BACK}, {DOWN,BACK, DOWN,BACK, DOWN,FORW, DOWN,FORW, DOWN,BACK, DOWN,BACK}, {DOWN,BACK, UPWD,BACK, UPWD,FORW, DOWN,FORW, DOWN,BACK, UPWD,BACK}, }; #define GaitTurnLeftSize 6 int GaitLeft[GaitTurnLeftSize][12]= { {DOWN,BACK, UPWD,BACK, UPWD,FORW, DOWN,FORW, DOWN,BACK, UPWD,BACK}, {DOWN,BACK, DOWN,BACK, DOWN,FORW, DOWN,FORW, DOWN,BACK, DOWN,BACK}, {UPWD,BACK, DOWN,BACK, DOWN,FORW, UPWD,FORW, UPWD,BACK, DOWN,BACK}, {UPWD,FORW, DOWN,FORW, DOWN,BACK, UPWD,BACK, UPWD,FORW, DOWN,FORW}, {DOWN,FORW, DOWN,FORW, DOWN,BACK, DOWN,BACK, DOWN,FORW, DOWN,FORW}, {DOWN,FORW, UPWD,FORW, UPWD,BACK, DOWN,BACK, DOWN,FORW, UPWD,FORW}, }; int PosInit[12]= {CNTR,CNTR, CNTR,CNTR, CNTR,CNTR, CNTR,CNTR, CNTR,CNTR, CNTR,CNTR}; void set_joint(int pos1[12]) /* set all servos to given position */ { int servo; for (servo=0; servo