Professional Documents
Culture Documents
12 01:23:37 =~=~=~=~=~=~=~=~=~=~=~=
gg
root@hexapod_zynq:~/hexapod_project/Modeling/Python# py
test_locomotion_gait_translation.pyvim test_locomotion_gait_translation.py
"test_locomotion_gait_translation.py" 228L, 11273C
E823: Not an undo file:
/home/root/hexapod_project/Modeling/Python/.test_locomotion_gait_translation.py.un~
Press ENTER or type command to continue167 x3=xo-0.6*i*sin(-alf);y3=0-0.6*i*cos(-
alf);z3=zo;
168 ## Primera Etapa: 0<i<=2*S/3
169 if i<=2*S/3:
170 x4=xo-0.6*i*sin(alf);y4=0-0.6*i*cos(alf);z4=zo;
171 ## Primera Etapa: 0<i<=S/6
172 if i<=S/6:
173 x5=xo+3*i*sin(-alf);y5=-yo+3*i*cos(-alf);
174 if S!=0:
175 z5=-(8*(3*i-S/4)**2/S-zo-S/2);
176 else:
177 z5=zo+S/2;
178 if i<=S/2:
179 x6=xo-0.6*i*sin(alf);y6=-yo-0.6*i*cos(alf);z6=zo;
180
181 ## Segunda Etapa: S/3<i<=S/2
182 if i>S/3 and i<=S/2:
183 x1=xo+(3*i-1.2*S)*sin(-alf); y1=yo+(3*i-1.2*S)*cos(-alf); z1=-(8*((3*i-
1.2*S)-S/20)**2/S-zo-S/2);
184 ## Segunda Etapa: 5*S/6<i<=S
185 if i>5*S/6 and i<=S:
186 x2=xo+3*(i-S)*sin(alf);y2=yo+3*(i-S)*cos(alf);z2=-(8*(3*(i-S)+S/4)**2/S-zo-
S/2);
187 ## Segunda Etapa: S/6<i<=S/3
188 if i>S/6 and i<=S/3:
189 x3=xo+(3*i-0.6*S)*sin(-alf); y3=0+(3*i-0.6*S)*cos(-alf); z3=-(8*((3*i-
0.6*S)-3/20*S)**2/S-zo-S/2);
190 if i>2*S/3 and i<=5*S/6:
191 x4=xo+(3*i-2.4*S)*sin(alf); y4=0+(3*i-2.4*S)*cos(alf); z4=-(8*((3*i-
2.4*S)+3/20*S)**2/S-zo-S/2);
192 ## Segunda Etapa: S/6<i<=S
193 if i>S/6 and i<=S:
194 x5=xo+0.6*(S-i)*sin(-alf); y5=-yo+0.6*(S-i)*cos(-alf); z5=zo;
195 ## Segunda Etapa: S/2<i<=2S/3
196 if i>S/2 and i<=2*S/3:
197 x6=xo+(3*i-1.8*S)*sin(alf); y6=-yo+(3*i-1.8*S)*cos(alf); z6=-(8*((3*i-
1.8*S)+S/20)**2/S-zo-S/2);
198
199 ## Tercera Etapa: S/2<i<=S
200 if i>S/2 and i<=S:
201 x1=xo+0.6*(S-i)*sin(-alf); y1=yo+0.6*(S-i)*cos(-alf); z1=zo;
202 ## Tercera Etapa: S/3<i<=S
203 if i>S/3 and i<=S:
204 x3=xo+0.6*(S-i)*sin(-alf); y3=0+0.6*(S-i)*cos(-alf);z3=zo;
205 ## Tercera Etapa: 5*S/6<i<=S
206 if i>5*S/6 and i<=S:
207 x4=xo+0.6*(S-i)*sin(alf);y4=0+0.6*(S-i)*cos(alf);z4=zo;
208 ## Tercera Etapa: 2S/3<i<=S
209 if i>2*S/3 and i<=S:
210 x6=xo+0.6*(S-i)*sin(alf);y6=-yo+0.6*(S-i)*cos(alf); z6=zo;
211
212 x1=x1/100; y1=y1/100; z1=z1/100;
213 x2=x2/100; y2=y2/100; z2=z2/100;
214 x3=x3/100; y3=y3/100; z3=z3/100;
215 x4=x4/100; y4=y4/100; z4=z4/100;
216 x5=x5/100; y5=y5/100; z5=z5/100;
217 x6=x6/100; y6=y6/100; z6=z6/100;
218
219 hexapod.joints[0] = np.array([x1, y1, z1], np.float32)
220 hexapod.joints[1] = np.array([x2, y2, z2], np.float32)
221 hexapod.joints[2] = np.array([x3, y3, z3], np.float32)
222 hexapod.joints[3] = np.array([x4, y4, z4], np.float32)
223 hexapod.joints[4] = np.array([x5, y5, z5], np.float32)
224 hexapod.joints[5] = np.array([x6, y6, z6], np.float32)
225 hexapod.set_step_debug()
226 hexapod.step_delay()
227
228 hexapod.set_init_position(print_out=False)g gg 1 # -*- coding: utf-8 -*-
2 import os, sys
3 import numpy as np
4 from math import sin as sin
5 from math import cos as cos
6 from math import pi as pi
7
8 ###############################################################################
9 #### Append Paths
10 ###############################################################################
11 pathname = os.path.dirname(sys.argv[0])
12 abs_path = os.path.abspath(pathname)
13 print('Appending path'+ abs_path+'/includes')
14 sys.path.append(abs_path+'/includes')
15 from hexapod_class import hexapod_kinematics as hexapod
16
17 ###############################################################################
18 #### Hexapod Configuration
19 ###############################################################################
20 #### Hexapod Object
21 hexapod = hexapod(invoke_axi_ip=True)
22
23 ## Import Parameters
24 hexapod.offsets_file_path= abs_path+'/params/joint_offset.params'
25 hexapod.init_position_file_path = abs_path+'/params/init_position.params'
26 hexapod.init_servo_inv_file_path = abs_path+'/params/init_servo_inv.params'
27
28 ## Initialize Parameters
29 hexapod.import_init_pos()
30 hexapod.import_offsets()
31 hexapod.import_init_servo_invertion()
32 hexapod.set_default_offsets(print_out=False)
33 hexapod.set_init_position(print_out=False)
34
35 ## Set Delay
36 hexapod.delay = 0.01
37
38
39 S = input('Insert S val = ') #10 #y stride length
40 res = input('Insert res = ')#0.1 #iteration resolution
41 xo = 12.38 #x offset
42 yo = 5#y offset
43 zo = -10.51 #z offset
44
45 angle = input('Insert alpha : ')
46 alf = angle*pi/180;
47
48 ## Selecci�n de caminata
49 walk = input('Insert Walk : ')
50
51 ###############################################################################
52 #### Traslational Locomotion
53 ###############################################################################
54 n_gaits = input('Insert N gaits : ')
55 for k in range (n_gaits):
56 for j in range(int(S/res)):
57 i=res*j;
58 if(walk==1):
59 ## Primera Etapa: 0<i<=S/2
60 if i<=S/2:
61 x1=xo+i*sin(-alf);y1=yo+i*cos(-alf);
62 x2=xo+(S/2-i)*sin(alf);y2=yo+(S/2-i)*cos(alf);z2=zo; -*- coding: utf-8 -*- --
VISUAL LINE --G228167 x3=xo-0.6*i*sin(-alf); y3=0-
0.6*i*cos(-alf); z3=zo;
168 ## Primera Etapa: 0<i<=2*S/3
169 if i<=2*S/3:
170 x4=xo-0.6*i*sin(alf); y4=0-0.6*i*cos(alf);
z4=zo;
171 ## Primera Etapa: 0<i<=S/6
172 if i<=S/6:
173 x5=xo+3*i*sin(-alf); y5=-yo+3*i*cos(-alf);
174 if S!=0:
175 z5=-(8*(3*i-S/4)**2/S-zo-S/2);
176 else:
177 z5=zo+S/2;
178 if i<=S/2:
179 x6=xo-0.6*i*sin(alf); y6=-yo-0.6*i*cos(alf);
z6=zo;
180
181 ## Segunda Etapa: S/3<i<=S/2
182 if i>S/3 and i<=S/2:
183 x1=xo+(3*i-1.2*S)*sin(-alf); y1=yo+(3*i-1.2*S)*cos(-alf);
z1=-(8*((3*i-1.2*S)-S/20)**2/S-zo-S/2);
184 ## Segunda Etapa: 5*S/6<i<=S
185 if i>5*S/6 and i<=S:
186 x2=xo+3*(i-S)*sin(alf); y2=yo+3*(i-S)*cos(alf);
z2=-(8*(3*(i-S)+S/4)**2/S-zo-S/2);
187 ## Segunda Etapa: S/6<i<=S/3
188 if i>S/6 and i<=S/3:
189 x3=xo+(3*i-0.6*S)*sin(-alf); y3=0+(3*i-0.6*S)*cos(-alf);
z3=-(8*((3*i-0.6*S)-3/20*S)**2/S-zo-S/2);
190 if i>2*S/3 and i<=5*S/6:
191 x4=xo+(3*i-2.4*S)*sin(alf); y4=0+(3*i-2.4*S)*cos(alf);
z4=-(8*((3*i-2.4*S)+3/20*S)**2/S-zo-S/2);
192 ## Segunda Etapa: S/6<i<=S
193 if i>S/6 and i<=S:
194 x5=xo+0.6*(S-i)*sin(-alf); y5=-yo+0.6*(S-i)*cos(-alf);
z5=zo;
195 ## Segunda Etapa: S/2<i<=2S/3
196 if i>S/2 and i<=2*S/3:
197 x6=xo+(3*i-1.8*S)*sin(alf); y6=-yo+(3*i-1.8*S)*cos(alf);
z6=-(8*((3*i-1.8*S)+S/20)**2/S-zo-S/2);
198
199 ## Tercera Etapa: S/2<i<=S
200 if i>S/2 and i<=S:
201 x1=xo+0.6*(S-i)*sin(-alf); y1=yo+0.6*(S-i)*cos(-alf);
z1=zo;
202 ## Tercera Etapa: S/3<i<=S
203 if i>S/3 and i<=S:
204 x3=xo+0.6*(S-i)*sin(-alf); y3=0+0.6*(S-i)*cos(-alf);
z3=zo;
205 ## Tercera Etapa: 5*S/6<i<=S
206 if i>5*S/6 and i<=S:
207 x4=xo+0.6*(S-i)*sin(alf); y4=0+0.6*(S-i)*cos(alf);
z4=zo;
208 ## Tercera Etapa: 2S/3<i<=S
209 if i>2*S/3 and i<=S:
210 x6=xo+0.6*(S-i)*sin(alf); y6=-yo+0.6*(S-i)*cos(alf);
z6=zo;
211
212 x1=x1/100; y1=y1/100; z1=z1/100;
213 x2=x2/100; y2=y2/100; z2=z2/100;
214 x3=x3/100; y3=y3/100; z3=z3/100;
215 x4=x4/100; y4=y4/100; z4=z4/100;
216 x5=x5/100; y5=y5/100; z5=z5/100;
217 x6=x6/100; y6=y6/100; z6=z6/100;
218
219 hexapod.joints[0] = np.array([x1, y1, z1], np.float32)
220 hexapod.joints[1] = np.array([x2, y2, z2], np.float32)
221 hexapod.joints[2] = np.array([x3, y3, z3], np.float32)
222 hexapod.joints[3] = np.array([x4, y4, z4], np.float32)
223 hexapod.joints[4] = np.array([x5, y5, z5], np.float32)
224 hexapod.joints[5] = np.array([x6, y6, z6], np.float32)
225 hexapod.set_step_debug()
226 hexapod.step_delay()
227
228 hexapod.set_init_position(print_out=False)
-- VISUAL LINE --228d 1~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
--No lines in buffer--::sert pasteE492: Not an editor command: sert pastei --
INSERT (paste) --# -*- coding: utf-8 -*-
2 import os, sys 3 import numpy as np
4 from math import sin as sin 5 from math import cos as cos
6 from math import pi as pi 7 8 ##########################225