bullet points learned from book : the lego mindstorms EV3 laboratory by daniel benedettelli:
ceil (truncating)
wall following bot formula :
steering = - distanceInput(constDistanceThresHold(50)-measurementTolerance(2))
getting gears to mesh together : the sum of the gear radius should to an integer
(cause assembled on a studless beam with integer size) for example :
8z 0.5 with 40z 2.5 gears
biped robot wieght shifting :
the projection of the center of mass must be within the support area of the foot that
is still on the ground
formula : computing the degrees parameter to steer precisely :
(T*L)/R
T = degrees to turn robot (rov3r model for example)
L = the distance from the tire center to the bot center
R = radius of the wheel
turn the motor 208 degrees to turn rov3r 90 degress : (90*50)/21.6
rear wheel electric differential formula :
Vr = V(1+.017D*a/H) // outer wheel
Vl = V(1-.017D*a/H)// inner wheel
v = speed
a = turn angle
D = half dist between 2 rear wheels
H = dist rear to front wheel
.017=degrees by radians (pie/180)
***************************************************
gyro
https://frobotme.wordpress.com/2014/04/29/algorithm-for-self-balancing-robot/void loop() {
float expectedTilt = 0;
float currentTilt = getCurrentTilt(); // From accelerometer
float currentTiltRate = getCurrentTiltRate(); // From gyro
float thrust = pid(currentTilt - expectedTilt, 0, currentTilt + currentTiltRate, 0.25, 0, 0.75);
// Apply thrust to each motor
}
Proportional – present error
The present error is the amount of tilt that the robot has. It is supposed to have a tilt of 0°.
If it is tiled by 10°, the error is -10.
terry griffin wrote: progressively reduce kp by .05 and increase ki by.01 for thrust x till stable
float pid(error, integral, derivative, Kp, Ki, Kd) {
return -(error * Kp + integral * Ki + derivative * Kd);
}