Now vl and vr return v_x and omega respectively
This commit is contained in:
@@ -66,7 +66,7 @@ static calib_diff_t calib_enc = {
|
||||
.right_gain = 1.0000
|
||||
};
|
||||
|
||||
bool update_pos_cb() {
|
||||
void update_pos_cb() {
|
||||
|
||||
substep_update(&state_l);
|
||||
substep_update(&state_r);
|
||||
@@ -89,12 +89,18 @@ bool update_pos_cb() {
|
||||
vel_l /=64 * ENCODER_CPR;
|
||||
vel_r /=64 * ENCODER_CPR;
|
||||
|
||||
base_vl = vel_l;
|
||||
base_vr = vel_r;
|
||||
|
||||
vel_l *= WHEEL_RADIUS * 2 * M_PI * calib_enc.left_gain;
|
||||
vel_r *= -WHEEL_RADIUS * 2 * M_PI * calib_enc.right_gain;
|
||||
|
||||
const double vl_enc = state_l.speed;
|
||||
const double vr_enc = state_r.speed;
|
||||
|
||||
const double vl = (vl_enc/(64 * ENCODER_CPR)) * WHEEL_RADIUS * 2 * M_PI * calib_enc.left_gain;
|
||||
const double vr = (vr_enc/(64 * ENCODER_CPR)) * -WHEEL_RADIUS * 2 * M_PI * calib_enc.right_gain;
|
||||
|
||||
base_vl = (vl + vr)/2;
|
||||
base_vr = (vr - vl)/wheel_separation;
|
||||
|
||||
const double linear = (vel_l + vel_r) / 2;
|
||||
const double angular = (vel_r - vel_l) / wheel_separation;
|
||||
const double r = linear / angular;
|
||||
|
||||
Reference in New Issue
Block a user