Skip to content
This repository has been archived by the owner on Feb 25, 2021. It is now read-only.

Jacobian computation #521

Open
IaroslavS opened this issue Feb 3, 2021 · 0 comments
Open

Jacobian computation #521

IaroslavS opened this issue Feb 3, 2021 · 0 comments

Comments

@IaroslavS
Copy link

Hi, this is not an issue, I'm just wondering the meaning of the Jacobian computation, implemented in OpenVSLAM in file https://github.com/xdspacelab/openvslam/blob/master/src/openvslam/optimize/g2o/se3/perspective_pose_opt_edge.cc
There are several variants and I understand why Jacobian matrix for mono differs from stereo (there's no x_right for mono).
I don't understand where the formulas for Jacobian elements were taken. Could you, please, explain, the origin of these formulas:

    _jacobianOplusXi(0, 0) = x * y / z_sq * fx_;
    _jacobianOplusXi(0, 1) = -(1.0 + (x * x / z_sq)) * fx_;
    _jacobianOplusXi(0, 2) = y / z * fx_;
    _jacobianOplusXi(0, 3) = -1.0 / z * fx_;
    _jacobianOplusXi(0, 4) = 0.0;
    _jacobianOplusXi(0, 5) = x / z_sq * fx_;

    _jacobianOplusXi(1, 0) = (1.0 + y * y / z_sq) * fy_;
    _jacobianOplusXi(1, 1) = -x * y / z_sq * fy_;
    _jacobianOplusXi(1, 2) = -x / z * fy_;
    _jacobianOplusXi(1, 3) = 0.0;
    _jacobianOplusXi(1, 4) = -1.0 / z * fy_;
    _jacobianOplusXi(1, 5) = y / z_sq * fy_;

    _jacobianOplusXi(2, 0) = _jacobianOplusXi(0, 0) - focal_x_baseline_ * y / z_sq;
    _jacobianOplusXi(2, 1) = _jacobianOplusXi(0, 1) + focal_x_baseline_ * x / z_sq;
    _jacobianOplusXi(2, 2) = _jacobianOplusXi(0, 2);
    _jacobianOplusXi(2, 3) = _jacobianOplusXi(0, 3);
    _jacobianOplusXi(2, 4) = 0.0;
    _jacobianOplusXi(2, 5) = _jacobianOplusXi(0, 5) - focal_x_baseline_ / z_sq;

Particularly, I don't see if these formulas reflect projection errors (I see absolute values). Are the last 3 colomns ( Jacobian[:,3:] ) reflect yaw, pitch, roll ?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant