Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Correctly using EdgeSE3Expmap class #325

Open
chait-desai opened this issue Nov 21, 2018 · 4 comments
Open

Correctly using EdgeSE3Expmap class #325

chait-desai opened this issue Nov 21, 2018 · 4 comments
Labels

Comments

@chait-desai
Copy link

Unless I am missing something, the EdgeSE3Expmap class implementation is not working the way it is supposed to.
I am setting up a simple optimization problem with just 2 vertices representing poses in SE3: the pose of one of the vertices is fixed and the other is free to change. The idea is to get the free vertex to converge to the pose of the fixed vertex. The "odometry measurement" between the 2 poses is the identity isometry (no rotation and no translation), so that the error associated with the edge in only a function of the difference between the 2 poses. I am able to get the optimization to behave correctly when the 2 vertices are represented using the VertexSE3 class and the edge is represented using the EdgeSE3 class. However, when I switch to VertexSE3Expmap and EdgeSE3Expmap, I get nonsensical results. Attached is the code (which should be added to the examples directory if you want to run the code)
SE3test.tar.gz
and the console output of running the code
g2o

@steplee
Copy link

steplee commented Dec 5, 2018

I am experiencing the same thing. If you have resolved this or anyone can help, please help!

@winf
Copy link

winf commented Jan 16, 2019

@chait-desai ,do not forget to set the information of the edge,
Eigen::MatrixXd Info = Eigen::MatrixXd::Identity(6,6); constraint->setInformation(Info);
after add these code, your SE3test should get the right result. Tested on the current master branch.

@LongruiDong
Copy link

Unless I am missing something, the EdgeSE3Expmap class implementation is not working the way it is supposed to.
I am setting up a simple optimization problem with just 2 vertices representing poses in SE3: the pose of one of the vertices is fixed and the other is free to change. The idea is to get the free vertex to converge to the pose of the fixed vertex. The "odometry measurement" between the 2 poses is the identity isometry (no rotation and no translation), so that the error associated with the edge in only a function of the difference between the 2 poses. I am able to get the optimization to behave correctly when the 2 vertices are represented using the VertexSE3 class and the edge is represented using the EdgeSE3 class. However, when I switch to VertexSE3Expmap and EdgeSE3Expmap, I get nonsensical results. Attached is the code (which should be added to the examples directory if you want to run the code)
SE3test.tar.gz
and the console output of running the code
g2o

Have you figured it out?

Copy link

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 14 days.

@github-actions github-actions bot added the Stale label Jan 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants