Skip to content

Question about the wheel odometry noise definitions #59

@mitchellcohen3

Description

@mitchellcohen3

Hi, thanks for the great work! I had a question about the definition of the wheel odometry noises. If I understand correctly, noise_w and noise_v are the continuous-time noises for the angular/linear velocity, and noise_p is the noise associated with the planar constraint. However, when the 6x6 noise covariance matrix is computed within UpdaterWheel.cpp, noise_w is placed in the first diagonal element while noise_p is applied to the 2nd and 3rd diagonal elements.

} else if (state->op->wheel->type == "Wheel3DCen") {
Q.block(0, 0, 1, 1) << pow(state->op->wheel->noise_w, 2) / dt;
Q.block(1, 1, 1, 1) << pow(state->op->wheel->noise_p, 2) / dt;
Q.block(2, 2, 1, 1) << pow(state->op->wheel->noise_p, 2) / dt;
Q.block(3, 3, 1, 1) << pow(state->op->wheel->noise_v, 2) / dt;
Q.block(4, 4, 1, 1) << pow(state->op->wheel->noise_p, 2) / dt;
Q.block(5, 5, 1, 1) << pow(state->op->wheel->noise_p, 2) / dt;
} else {

Why is the noise covariance matrix not set to

    Q.block(0, 0, 1, 1) << pow(state->op->wheel->noise_p, 2) / dt;
    Q.block(1, 1, 1, 1) << pow(state->op->wheel->noise_p, 2) / dt;
    Q.block(2, 2, 1, 1) << pow(state->op->wheel->noise_w, 2) / dt;
    Q.block(3, 3, 1, 1) << pow(state->op->wheel->noise_v, 2) / dt;
    Q.block(4, 4, 1, 1) << pow(state->op->wheel->noise_p, 2) / dt;
    Q.block(5, 5, 1, 1) << pow(state->op->wheel->noise_p, 2) / dt;

since the rotation is about the z-axis of the odometry frame? Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions