Skip to content

Commit bd102ea

Browse files
committed
forward walking test
1 parent 5d5af7d commit bd102ea

File tree

2 files changed

+52
-47
lines changed

2 files changed

+52
-47
lines changed

hardware_test/LabRobot/StableGait/QuadrupedRobot.cpp

Lines changed: 51 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -198,9 +198,9 @@ void QuadrupedRobot::body_move_xyz(float dx, float dy, float dz)
198198
*/
199199
void QuadrupedRobot::foot_step(int i, float x, float z)
200200
{
201-
foot_move_xyz(i, 0, 30, 0); // leg lifting
201+
foot_move_xyz(i, 0, 50, 0); // leg lifting
202202
foot_move_xyz(i, x, 0, z); // motion forward
203-
foot_move_xyz(i, 0, -30, 0); // leg placement
203+
foot_move_xyz(i, 0, -50, 0); // leg placement
204204
}
205205

206206
void QuadrupedRobot::foot_move_xyz(int i, float dx, float dy, float dz)
@@ -210,7 +210,7 @@ void QuadrupedRobot::foot_move_xyz(int i, float dx, float dy, float dz)
210210
foot_pos[3 * i + 2] += dz;
211211
inverse_kinematics();
212212
servo_write_angs(joint_angs_new, false);
213-
delay(100);
213+
delay(200);
214214
}
215215

216216

@@ -227,36 +227,36 @@ void QuadrupedRobot::inverse_kinematics()
227227
joint_angs_new[1] = alfa_front(foot_pos[0], joint_angs_new[2], vlegs_len[0]);
228228

229229
// FR 3, 4, 5
230-
joint_angs_new[3] = gamma_right(foot_pos[4], foot_pos[5]);
231-
vlegs_len[1] = vleg_right(foot_pos[3], foot_pos[4], joint_angs_new[3]);
232-
joint_angs_new[5] = beta_front(vlegs_len[1]);
233-
joint_angs_new[4] = alfa_front(foot_pos[3], joint_angs_new[5], vlegs_len[1]);
234-
235-
// RR 6, 7, 8
236-
joint_angs_new[6] = gamma_right(foot_pos[7], foot_pos[8]);
237-
vlegs_len[2] = vleg_right(foot_pos[6], foot_pos[7], joint_angs_new[6]);
238-
joint_angs_new[8] = beta_rear(vlegs_len[2]);
239-
joint_angs_new[7] = alfa_rear(foot_pos[6], joint_angs_new[8], vlegs_len[2]);
240-
241-
// RL 9, 10, 11
242-
joint_angs_new[9] = gamma_left(foot_pos[10], foot_pos[11]);
243-
vlegs_len[3] = vleg_left(foot_pos[9], foot_pos[10], joint_angs_new[9]);
244-
joint_angs_new[11] = beta_rear(vlegs_len[3]);
245-
joint_angs_new[10] = alfa_rear(foot_pos[9], joint_angs_new[11], vlegs_len[3]);
246-
247-
// Serial.println("------- Test Angle list: ----------");
248-
// Serial.println(joint_angs_new[0] * 180 / M_PI);
249-
// Serial.println(joint_angs_new[1] * 180 / M_PI);
250-
// Serial.println(joint_angs_new[2] * 180 / M_PI);
251-
// Serial.println(joint_angs_new[3] * 180 / M_PI);
252-
// Serial.println(joint_angs_new[4] * 180 / M_PI);
253-
// Serial.println(joint_angs_new[5] * 180 / M_PI);
254-
// Serial.println(joint_angs_new[6] * 180 / M_PI);
255-
// Serial.println(joint_angs_new[7] * 180 / M_PI);
256-
// Serial.println(joint_angs_new[8] * 180 / M_PI);
257-
// Serial.println(joint_angs_new[9] * 180 / M_PI);
258-
// Serial.println(joint_angs_new[10] * 180 / M_PI);
259-
// Serial.println(joint_angs_new[11] * 180 / M_PI);
230+
joint_angs_new[3] = gamma_right(foot_pos[4], foot_pos[5]);
231+
vlegs_len[1] = vleg_right(foot_pos[3], foot_pos[4], joint_angs_new[3]);
232+
joint_angs_new[5] = beta_front(vlegs_len[1]);
233+
joint_angs_new[4] = alfa_front(foot_pos[3], joint_angs_new[5], vlegs_len[1]);
234+
235+
// RR 6, 7, 8
236+
joint_angs_new[6] = gamma_right(foot_pos[7], foot_pos[8]);
237+
vlegs_len[2] = vleg_right(foot_pos[6], foot_pos[7], joint_angs_new[6]);
238+
joint_angs_new[8] = beta_rear(vlegs_len[2]);
239+
joint_angs_new[7] = alfa_rear(foot_pos[6], joint_angs_new[8], vlegs_len[2]);
240+
241+
// RL 9, 10, 11
242+
joint_angs_new[9] = gamma_left(foot_pos[10], foot_pos[11]);
243+
vlegs_len[3] = vleg_left(foot_pos[9], foot_pos[10], joint_angs_new[9]);
244+
joint_angs_new[11] = beta_rear(vlegs_len[3]);
245+
joint_angs_new[10] = alfa_rear(foot_pos[9], joint_angs_new[11], vlegs_len[3]);
246+
247+
// Serial.println("------- Test Angle list: ----------");
248+
// Serial.println(joint_angs_new[0] * 180 / M_PI);
249+
// Serial.println(joint_angs_new[1] * 180 / M_PI);
250+
// Serial.println(joint_angs_new[2] * 180 / M_PI);
251+
// Serial.println(joint_angs_new[3] * 180 / M_PI);
252+
// Serial.println(joint_angs_new[4] * 180 / M_PI);
253+
// Serial.println(joint_angs_new[5] * 180 / M_PI);
254+
// Serial.println(joint_angs_new[6] * 180 / M_PI);
255+
// Serial.println(joint_angs_new[7] * 180 / M_PI);
256+
// Serial.println(joint_angs_new[8] * 180 / M_PI);
257+
// Serial.println(joint_angs_new[9] * 180 / M_PI);
258+
// Serial.println(joint_angs_new[10] * 180 / M_PI);
259+
// Serial.println(joint_angs_new[11] * 180 / M_PI);
260260
}
261261

262262
// Gamma: Hip Z angle
@@ -360,20 +360,25 @@ void QuadrupedRobot::bot_rest()
360360
*/
361361
void QuadrupedRobot::bot_walk()
362362
{
363-
float zl {30};
364363
Serial.println("walk");
365-
// Serial.print("foot_pos[2]: ");
366-
// Serial.println(foot_pos[2]);
367-
body_move_xyz(steplen / 4, 0, -zl);
368-
// foot_step(3, steplen / 2, 0); // move RL
369-
// foot_step(0, steplen / 2, 0); // move FL
370-
// body_move_xyz(steplen / 3, 0, 2 * toe_out0);
371-
// while (command_code == 3)
372-
// {
373-
374-
// interrupt();
375-
// }
376-
clear_cmd();
364+
body_move_xyz(steplen / 4, 0, -toe_out0);
365+
foot_step(3, steplen / 2, 0); // move RL
366+
foot_step(0, steplen / 2, 0); // move FL
367+
body_move_xyz(steplen / 4, 0, 2 * toe_out0);
368+
while (command_code == 3)
369+
{
370+
foot_step(2, steplen, 0); // move RR
371+
foot_step(1, steplen, 0); // move FR
372+
body_move_xyz(steplen / 2, 0, -2 * toe_out0 );
373+
foot_step(3, steplen, 0); // move RL
374+
foot_step(0, steplen, 0); // move FL
375+
body_move_xyz(steplen / 2, 0, 2 * toe_out0);
376+
interrupt();
377+
}
378+
foot_step(2, steplen / 2, 0);
379+
foot_step(1, steplen / 2, 0);
380+
body_xyz(0, 0, 0);
381+
delay(500);
377382
}
378383

379384
QuadrupedRobot::~QuadrupedRobot()

hardware_test/LabRobot/StableGait/QuadrupedRobot.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class QuadrupedRobot
4040
* Servo rotation configs
4141
* Real servo coord to calibrated coord: X-roll, Y-yaw, Z-pitch
4242
*/
43-
const float init_servo_deg[12]{35, 90, 180, 125, 83, 0, 40, 85, 180, 127, 83, 0};
43+
const float init_servo_deg[12]{35, 90, 180, 125, 83, 5, 40, 85, 180, 127, 83, 0};
4444
const int8_t servo_dir[12]{-1, -1, -1, -1, 1, 1, 1, 1, 1, 1, -1, -1};
4545
const float toe_out0{30}; // outward distance of toe during stand, in mm
4646
const float dist_ag{30}; // distance between alfa and gamma axis, in mm

0 commit comments

Comments
 (0)