Comments (5)
The error message tells you what-s going on: data is not normalized. In manif::SE(3)
, the rotation part is a Eigen::Quaternion
, and the norm of the quaternion MUST BE 1.
To fix it, your original data must be correct:
- You should make sure your original matrix has a valid rotation matrix (
det(R) == 1
andR.tr*R == Id
).
If it is correct, then it means that passing from float to double you miss some precision and that the data is not normalized.
- Then what you can do is convert the rotation part to quaternion, then normalize the quaternnion, then construct the SE3 object from translation and quaternion.
from manif.
Hi Prof,
Thank you very much for this answer, i'll try straight away!
from manif.
You could alternatively raise the tolerance level of the tests by modifying some constant in manif, but first you should make sure that your original data is correct. If I remember correctly, our tests already considered the possibility of working with float
with the selection of the appropriate tolerance level in the unit tests, and therefore I bet your first guess is look at your data.
If your data is OK but you still do not pass, please report back and we'll see if we raise the tolerance for the whole project. @artivis what is your opinion?
from manif.
Among other stuffs I've tried is to convert my 4x4 matrix which is basically the result of a 3d ICP to the tuple (tx, ty, ty, thetax, thetay, thetaz) as follows, then insert it in the SE3 constructor:
void Registration::convertTf2Vector(tf::Transform &tf_ ,
Eigen::Vector3d &tt,
Eigen::Vector3d &euler
)
{
Eigen::Isometry3d pose;
tf::transformTFToEigen(tf_, pose );
tt = pose.translation();
tf::Matrix3x3 m(tf_.getRotation());
double roll, pitch, yaw;
m.getEulerYPR(yaw, pitch, roll);
euler << yaw, pitch, roll;
}
I will try to convert the tf to quaternion and translation and apply your recommendations, i'll let you know. Thank you very much for your valuable consideration, i feel privileged.
from manif.
Indeed, if your data starts from Euler angles, then you are better off converting it to quaternion directly. thanks for the feedback.
from manif.
Related Issues (20)
- Question regarding Jacobian of inverse action HOT 4
- Lie Bracket operation HOT 12
- Paper / Cheat Sheet vs Code inconsistency HOT 2
- Broken with current Eigen3? HOT 7
- Global versus local tangent space HOT 2
- Support specifying C++ standard from CMake command line when compiling Python bindings HOT 2
- cc1plus(48849) malloc: *** mmap(size=2097152) failed (error code=12) HOT 2
- Minus operator of SE(3) in paper HOT 1
- Practical benefit of SE(3) / Sim(3) vs T(3) x SO(3) HOT 5
- cast from float to double HOT 4
- Confused by Ceres Jacobian Explanation HOT 2
- Typo(?) for Jacobian of o-minus in the cheat sheet HOT 6
- gtest.h not found on Mac using Conda HOT 9
- Support for the new Ceres manifold framework
- Build tests for Mac are obsolete HOT 1
- Group actions for complex groups HOT 2
- New release? HOT 3
- ceres/autodiff_local_parameterization.h removed in Ceres 2.2.0 HOT 1
- Inequivalence between SE(3) and <R3, SO(3)> HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from manif.