Squirrels have fuzzy tails.
0 Members and 1 Guest are viewing this topic.
Where did you get the mechanical skeleton - buy or make?
My only complaint is that it seems very tedious to have to compile and re-program the Axon just to change a single servo value because it is slightly out.
I have two more big enhancements for this code coming up in the next ~4 months. The first is an automatic gait generator, and the second modifies your gait in real time to keep balance using sensors.
About my other question, how do the values obtained in RoboRealm relate to the ones in SOR Biped Engine?
Hey Admin, any idea when the new version with the rewrite of the timer/PWM functions will be released?
v2.1, June 27th, 2009better support for multiple gaits with multiple array counts addedfloat issues solvedv2.0, March 31st, 2009-gait meshing enabled: avoids jumping between each position-reverse gait added - just the inverse of the forward gait-home position had a bug in v1, effectively multiplied home by 2x-added *_count variable to help people mod gait array-changed all gait variables to long signed int, to avoid bugs from people modifying codev1.0, March 25th, 2009basic biped engine written, tested on ERP
biped_move(int head, int left_arm, int right_arm..... etc)
void dance_routine(int speed){ biped_move(head_pos, left_arm_pos, right_arm_pos .....etc); /pos1 biped_move(head_pos, left_arm_pos, right_arm_pos .....etc); /pos2 biped_move(head_pos, left_arm_pos, right_arm_pos .....etc); /pos3 ...}
Not sure about other people's walking gaits, but mine are made up of 30-40 poses usually.I'm sure there is an advantage to having the motions stored in arrays, but it would put my mind at ease if you could explain them
You see, with my biped engine, you don't need more than ~10 for a gait! The intermediate points are automatically calculated depending on the speed given for smooth motion. Change one datapoint, all the others automatically adjust. Storing it all in arrays was the most efficient way of organizing and accessing the data.
When I'm creating walking sequences there is some initial starting poses needed to get the robot into a position so that I can just run the walk sequence in a loop to achieve multiple steps. Now the problem comes when I change from the start_walk poses to the walk poses. My robot jolts around and the motion does not look smooth. But once he is going its all good.
That last comment I made I just implemented myself.
Lastly, it has automatic gait creation capabilities. You hardcore just two gaits, and it'll create any new gait in real-time for you.
I'm guessing you made it as two separate gaits? One followed by the other?
void walk_forward(int speed, int num_steps) { int start = 0; int end = forward_count; //set to last pose in continuous walk sequence for (repetitions = 0 ; repetitions < num_steps ; repetitions++) { for (i = start ; i < end ; i++) { //to test a particular position, uncomment i //and set it to a particular value //i=0; //send each command several times for (j=0;j<speed;j++) { //j=0;//for testing particular kinematics points calculate_per(speed, forward_count); head=forward_head[i]*per_a + forward_head[next]*per_b; ... right_elbow=forward_right_elbow[i]*per_a + forward_right_elbow[next]*per_b; biped_move(); } } start = 8; //position where the walk gate repeats itself }}
Hardware and Software PWM control? Is this maybe for use with non-digital servos? My robot is kindof a combination of the two at the moment and the analogue ones aren't working...
so you pretty much just change the start point of the walking gait based on whether you are completing more than one continuous walk cycle. Make sense?
I'm keen to see how you will be grabbing sensor data in real time without multi-threading.
The analogue servos need to be sent a command about 3x as often as the digital. Are you sending commands often enough?
Nope, no multi-threading needed. It goes into the main loop, checking at every interpolated step.
Quote from: Admin on August 22, 2009, 10:30:56 AMThe analogue servos need to be sent a command about 3x as often as the digital. Are you sending commands often enough?Is there an easy way to account for this within the biped engine?
Hurry up and get it finished so I can test it out!
I'll do my best! Would you like to be a beta tester? The caveat is I can't promise it'll work, but it'll get you the code weeks/months earlier.