1、报错Assertion `index >= 0 && index < size()' failed.
这种一般都是使用的时候越界了,比如定义了一个Eigen::Vector3d的变量a,访问的时候用了double m = a[3];造成的
2、四元数
常用三种构造方式:旋转向量,旋转矩阵,四个系数
Eigen::Quaternionf q(1,0,0,0) // 构造的顺序是(w,x,y,z)
q.coeffs() // coeff的顺序是(x,y,z,w)
Eigen::Quaternionf::Identity() // 等于 q(1,0,0,0) w,x,y,z顺序
3. norm/normalize/normalized
vector.norm() ---> 返回的是向量的二范数(L2 Norm);
matrix.norm() --->返回的是矩阵的Frobenius Norm;
A.normalize() ---> 其实就是每个元素各自除以范数(归一化)A_ij / A.norm(),对向量/矩阵自身做修改,返回void
A.normalized() ---> 与A.normalize()类似,不对矩阵自身做修改,返回归一化后的向量/矩阵.
版权声明:本文为luoyang7891原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。