写坐标点旋转的一些问题

In file included from /usr/include/eigen3/Eigen/Core:439:0,
                 from /usr/include/eigen3/Eigen/Dense:1,
                 from /media/zcw/黑桃k-固态/SLAM/小六/视觉惯性SLAM/第一部分 SLAM基础/第六章 三维空间中刚体旋转/6-transform/transform.cpp:1:
/usr/include/eigen3/Eigen/src/Core/Product.h: In instantiation of ‘struct Eigen::internal::traits<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >’:
/usr/include/eigen3/Eigen/src/Core/Product.h:115:7:   required from ‘class Eigen::internal::dense_product_base<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0, 3>’
/usr/include/eigen3/Eigen/src/Core/Product.h:147:7:   required from ‘class Eigen::ProductImpl<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0, Eigen::Dense>’
/usr/include/eigen3/Eigen/src/Core/Product.h:71:7:   required from ‘class Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>’
/media/zcw/黑桃k-固态/SLAM/小六/视觉惯性SLAM/第一部分 SLAM基础/第六章 三维空间中刚体旋转/6-transform/transform.cpp:19:35:   required from here
/usr/include/eigen3/Eigen/src/Core/Product.h:29:127: error: no type named ‘ReturnType’ in ‘struct Eigen::ScalarBinaryOpTraits<double, float, Eigen::internal::scalar_product_op<double, float> >’
 s<typename traits<LhsCleaned>::Scalar, typename traits<RhsCleaned>::Scalar>::ReturnType Scalar;
                                                                                         ^~~~~~
In file included from /usr/include/eigen3/Eigen/Core:435:0,
                 from /usr/include/eigen3/Eigen/Dense:1,
                 from /media/zcw/黑桃k-固态/SLAM/小六/视觉惯性SLAM/第一部分 SLAM基础/第六章 三维空间中刚体旋转/6-transform/transform.cpp:1:
/usr/include/eigen3/Eigen/src/Core/DenseBase.h: In instantiation of ‘class Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >’:
/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:48:34:   required from ‘class Eigen::MatrixBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >’
/usr/include/eigen3/Eigen/src/Core/Product.h:115:7:   required from ‘class Eigen::internal::dense_product_base<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0, 3>’
/usr/include/eigen3/Eigen/src/Core/Product.h:147:7:   required from ‘class Eigen::ProductImpl<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0, Eigen::Dense>’
/usr/include/eigen3/Eigen/src/Core/Product.h:71:7:   required from ‘class Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>’
/media/zcw/黑桃k-固态/SLAM/小六/视觉惯性SLAM/第一部分 SLAM基础/第六章 三维空间中刚体旋转/6-transform/transform.cpp:19:35:   required from here
/usr/include/eigen3/Eigen/src/Core/DenseBase.h:83:17: error: no members matching ‘Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>, 0>}::coeff’ in ‘Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka class Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>, 0>}’
     using Base::coeff;
                 ^~~~~
/usr/include/eigen3/Eigen/src/Core/DenseBase.h:84:17: error: no members matching ‘Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>, 0>}::coeffByOuterInner’ in ‘Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka class Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>, 0>}’
     using Base::coeffByOuterInner;
                 ^~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/DenseBase.h:85:26: error: no members matching ‘Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>, 0>}::operator()’ in ‘Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka class Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>, 0>}’
     using Base::operator();
                          ^
/usr/include/eigen3/Eigen/src/Core/DenseBase.h:86:26: error: no members matching ‘Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>, 0>}::operator[]’ in ‘Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka class Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>, 0>}’
     using Base::operator[];
                          ^
/usr/include/eigen3/Eigen/src/Core/DenseBase.h:87:17: error: no members matching ‘Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>, 0>}::x’ in ‘Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka class Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>, 0>}’
     using Base::x;
                 ^
/usr/include/eigen3/Eigen/src/Core/DenseBase.h:88:17: error: no members matching ‘Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>, 0>}::y’ in ‘Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka class Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>, 0>}’
     using Base::y;
                 ^
/usr/include/eigen3/Eigen/src/Core/DenseBase.h:89:17: error: no members matching ‘Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>, 0>}::z’ in ‘Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka class Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>, 0>}’
     using Base::z;
                 ^
/usr/include/eigen3/Eigen/src/Core/DenseBase.h:90:17: error: no members matching ‘Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>, 0>}::w’ in ‘Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka class Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>, 0>}’
     using Base::w;
                 ^
In file included from /usr/include/eigen3/Eigen/Core:436:0,
                 from /usr/include/eigen3/Eigen/Dense:1,
                 from /media/zcw/黑桃k-固态/SLAM/小六/视觉惯性SLAM/第一部分 SLAM基础/第六章 三维空间中刚体旋转/6-transform/transform.cpp:1:
/usr/include/eigen3/Eigen/src/Core/MatrixBase.h: In instantiation of ‘class Eigen::MatrixBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >’:
/usr/include/eigen3/Eigen/src/Core/Product.h:115:7:   required from ‘class Eigen::internal::dense_product_base<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0, 3>’
/usr/include/eigen3/Eigen/src/Core/Product.h:147:7:   required from ‘class Eigen::ProductImpl<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0, Eigen::Dense>’
/usr/include/eigen3/Eigen/src/Core/Product.h:71:7:   required from ‘class Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>’
/media/zcw/黑桃k-固态/SLAM/小六/视觉惯性SLAM/第一部分 SLAM基础/第六章 三维空间中刚体旋转/6-transform/transform.cpp:19:35:   required from here
/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:75:17: error: no members matching ‘Eigen::MatrixBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >}::coeff’ in ‘Eigen::MatrixBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka class Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >}’
     using Base::coeff;
                 ^~~~~
/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:78:17: error: no members matching ‘Eigen::MatrixBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >}::eval’ in ‘Eigen::MatrixBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka class Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >}’
     using Base::eval;
                 ^~~~
/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:81:25: error: no members matching ‘Eigen::MatrixBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >}::operator*=’ in ‘Eigen::MatrixBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka class Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >}’
     using Base::operator*=;
                         ^~
/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:82:25: error: no members matching ‘Eigen::MatrixBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >}::operator/=’ in ‘Eigen::MatrixBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >::Base {aka class Eigen::DenseBase<Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0> >}’
     using Base::operator/=;
                         ^~
In file included from /usr/include/eigen3/Eigen/Core:439:0,
                 from /usr/include/eigen3/Eigen/Dense:1,
                 from /media/zcw/黑桃k-固态/SLAM/小六/视觉惯性SLAM/第一部分 SLAM基础/第六章 三维空间中刚体旋转/6-transform/transform.cpp:1:
/usr/include/eigen3/Eigen/src/Core/Product.h: In instantiation of ‘struct Eigen::internal::traits<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >’:
/usr/include/eigen3/Eigen/src/Core/Product.h:115:7:   required from ‘class Eigen::internal::dense_product_base<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0, 3>’
/usr/include/eigen3/Eigen/src/Core/Product.h:147:7:   required from ‘class Eigen::ProductImpl<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0, Eigen::Dense>’
/usr/include/eigen3/Eigen/src/Core/Product.h:71:7:   required from ‘class Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>’
/usr/include/eigen3/Eigen/src/Geometry/Transform.h:1340:69:   required from ‘static Eigen::internal::transform_right_product_impl<TransformType, MatrixType, 1, RhsCols>::ResultType Eigen::internal::transform_right_product_impl<TransformType, MatrixType, 1, RhsCols>::run(const TransformType&, const MatrixType&) [with TransformType = Eigen::Transform<double, 3, 1>; MatrixType = Eigen::Matrix<float, 4, 1>; int RhsCols = 1; Eigen::internal::transform_right_product_impl<TransformType, MatrixType, 1, RhsCols>::ResultType = Eigen::Matrix<float, 4, 1>]’
/usr/include/eigen3/Eigen/src/Geometry/Transform.h:442:80:   required from ‘const typename Eigen::internal::transform_right_product_impl<Eigen::Transform<Scalar, Dim, Mode, _Options>, OtherDerived>::ResultType Eigen::Transform<Scalar, Dim, Mode, _Options>::operator*(const Eigen::EigenBase<OtherDerived>&) const [with OtherDerived = Eigen::Matrix<float, 4, 1>; _Scalar = double; int _Dim = 3; int _Mode = 1; int _Options = 0; typename Eigen::internal::transform_right_product_impl<Eigen::Transform<Scalar, Dim, Mode, _Options>, OtherDerived>::ResultType = Eigen::Matrix<float, 4, 1>]’
/media/zcw/黑桃k-固态/SLAM/小六/视觉惯性SLAM/第一部分 SLAM基础/第六章 三维空间中刚体旋转/6-transform/transform.cpp:25:34:   required from here
/usr/include/eigen3/Eigen/src/Core/Product.h:29:127: error: no type named ‘ReturnType’ in ‘struct Eigen::ScalarBinaryOpTraits<double, float, Eigen::internal::scalar_product_op<double, float> >’
 s<typename traits<LhsCleaned>::Scalar, typename traits<RhsCleaned>::Scalar>::ReturnType Scalar;
                                                                                         ^~~~~~
In file included from /usr/include/eigen3/Eigen/Core:435:0,
                 from /usr/include/eigen3/Eigen/Dense:1,
                 from /media/zcw/黑桃k-固态/SLAM/小六/视觉惯性SLAM/第一部分 SLAM基础/第六章 三维空间中刚体旋转/6-transform/transform.cpp:1:
/usr/include/eigen3/Eigen/src/Core/DenseBase.h: In instantiation of ‘class Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >’:
/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:48:34:   required from ‘class Eigen::MatrixBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >’
/usr/include/eigen3/Eigen/src/Core/Product.h:115:7:   required from ‘class Eigen::internal::dense_product_base<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0, 3>’
/usr/include/eigen3/Eigen/src/Core/Product.h:147:7:   required from ‘class Eigen::ProductImpl<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0, Eigen::Dense>’
/usr/include/eigen3/Eigen/src/Core/Product.h:71:7:   required from ‘class Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>’
/usr/include/eigen3/Eigen/src/Geometry/Transform.h:1340:69:   required from ‘static Eigen::internal::transform_right_product_impl<TransformType, MatrixType, 1, RhsCols>::ResultType Eigen::internal::transform_right_product_impl<TransformType, MatrixType, 1, RhsCols>::run(const TransformType&, const MatrixType&) [with TransformType = Eigen::Transform<double, 3, 1>; MatrixType = Eigen::Matrix<float, 4, 1>; int RhsCols = 1; Eigen::internal::transform_right_product_impl<TransformType, MatrixType, 1, RhsCols>::ResultType = Eigen::Matrix<float, 4, 1>]’
/usr/include/eigen3/Eigen/src/Geometry/Transform.h:442:80:   required from ‘const typename Eigen::internal::transform_right_product_impl<Eigen::Transform<Scalar, Dim, Mode, _Options>, OtherDerived>::ResultType Eigen::Transform<Scalar, Dim, Mode, _Options>::operator*(const Eigen::EigenBase<OtherDerived>&) const [with OtherDerived = Eigen::Matrix<float, 4, 1>; _Scalar = double; int _Dim = 3; int _Mode = 1; int _Options = 0; typename Eigen::internal::transform_right_product_impl<Eigen::Transform<Scalar, Dim, Mode, _Options>, OtherDerived>::ResultType = Eigen::Matrix<float, 4, 1>]’
/media/zcw/黑桃k-固态/SLAM/小六/视觉惯性SLAM/第一部分 SLAM基础/第六章 三维空间中刚体旋转/6-transform/transform.cpp:25:34:   required from here
/usr/include/eigen3/Eigen/src/Core/DenseBase.h:83:17: error: no members matching ‘Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>, 0>}::coeff’ in ‘Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka class Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>, 0>}’
     using Base::coeff;
                 ^~~~~
/usr/include/eigen3/Eigen/src/Core/DenseBase.h:84:17: error: no members matching ‘Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>, 0>}::coeffByOuterInner’ in ‘Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka class Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>, 0>}’
     using Base::coeffByOuterInner;
                 ^~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/DenseBase.h:85:26: error: no members matching ‘Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>, 0>}::operator()’ in ‘Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka class Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>, 0>}’
     using Base::operator();
                          ^
/usr/include/eigen3/Eigen/src/Core/DenseBase.h:86:26: error: no members matching ‘Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>, 0>}::operator[]’ in ‘Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka class Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>, 0>}’
     using Base::operator[];
                          ^
/usr/include/eigen3/Eigen/src/Core/DenseBase.h:87:17: error: no members matching ‘Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>, 0>}::x’ in ‘Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka class Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>, 0>}’
     using Base::x;
                 ^
/usr/include/eigen3/Eigen/src/Core/DenseBase.h:88:17: error: no members matching ‘Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>, 0>}::y’ in ‘Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka class Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>, 0>}’
     using Base::y;
                 ^
/usr/include/eigen3/Eigen/src/Core/DenseBase.h:89:17: error: no members matching ‘Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>, 0>}::z’ in ‘Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka class Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>, 0>}’
     using Base::z;
                 ^
/usr/include/eigen3/Eigen/src/Core/DenseBase.h:90:17: error: no members matching ‘Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>, 0>}::w’ in ‘Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka class Eigen::DenseCoeffsBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>, 0>}’
     using Base::w;
                 ^
In file included from /usr/include/eigen3/Eigen/Core:436:0,
                 from /usr/include/eigen3/Eigen/Dense:1,
                 from /media/zcw/黑桃k-固态/SLAM/小六/视觉惯性SLAM/第一部分 SLAM基础/第六章 三维空间中刚体旋转/6-transform/transform.cpp:1:
/usr/include/eigen3/Eigen/src/Core/MatrixBase.h: In instantiation of ‘class Eigen::MatrixBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >’:
/usr/include/eigen3/Eigen/src/Core/Product.h:115:7:   required from ‘class Eigen::internal::dense_product_base<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0, 3>’
/usr/include/eigen3/Eigen/src/Core/Product.h:147:7:   required from ‘class Eigen::ProductImpl<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0, Eigen::Dense>’
/usr/include/eigen3/Eigen/src/Core/Product.h:71:7:   required from ‘class Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0>’
/usr/include/eigen3/Eigen/src/Geometry/Transform.h:1340:69:   required from ‘static Eigen::internal::transform_right_product_impl<TransformType, MatrixType, 1, RhsCols>::ResultType Eigen::internal::transform_right_product_impl<TransformType, MatrixType, 1, RhsCols>::run(const TransformType&, const MatrixType&) [with TransformType = Eigen::Transform<double, 3, 1>; MatrixType = Eigen::Matrix<float, 4, 1>; int RhsCols = 1; Eigen::internal::transform_right_product_impl<TransformType, MatrixType, 1, RhsCols>::ResultType = Eigen::Matrix<float, 4, 1>]’
/usr/include/eigen3/Eigen/src/Geometry/Transform.h:442:80:   required from ‘const typename Eigen::internal::transform_right_product_impl<Eigen::Transform<Scalar, Dim, Mode, _Options>, OtherDerived>::ResultType Eigen::Transform<Scalar, Dim, Mode, _Options>::operator*(const Eigen::EigenBase<OtherDerived>&) const [with OtherDerived = Eigen::Matrix<float, 4, 1>; _Scalar = double; int _Dim = 3; int _Mode = 1; int _Options = 0; typename Eigen::internal::transform_right_product_impl<Eigen::Transform<Scalar, Dim, Mode, _Options>, OtherDerived>::ResultType = Eigen::Matrix<float, 4, 1>]’
/media/zcw/黑桃k-固态/SLAM/小六/视觉惯性SLAM/第一部分 SLAM基础/第六章 三维空间中刚体旋转/6-transform/transform.cpp:25:34:   required from here
/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:75:17: error: no members matching ‘Eigen::MatrixBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >}::coeff’ in ‘Eigen::MatrixBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka class Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >}’
     using Base::coeff;
                 ^~~~~
/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:78:17: error: no members matching ‘Eigen::MatrixBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >}::eval’ in ‘Eigen::MatrixBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka class Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >}’
     using Base::eval;
                 ^~~~
/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:81:25: error: no members matching ‘Eigen::MatrixBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >}::operator*=’ in ‘Eigen::MatrixBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka class Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >}’
     using Base::operator*=;
                         ^~
/usr/include/eigen3/Eigen/src/Core/MatrixBase.h:82:25: error: no members matching ‘Eigen::MatrixBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >}::operator/=’ in ‘Eigen::MatrixBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >::Base {aka class Eigen::DenseBase<Eigen::Product<Eigen::Block<const Eigen::Matrix<double, 4, 4>, 3, 4, false>, Eigen::Matrix<float, 4, 1>, 0> >}’
     using Base::operator/=;
                         ^~
In file included from /usr/include/eigen3/Eigen/Core:366:0,
                 from /usr/include/eigen3/Eigen/Dense:1,
                 from /media/zcw/黑桃k-固态/SLAM/小六/视觉惯性SLAM/第一部分 SLAM基础/第六章 三维空间中刚体旋转/6-transform/transform.cpp:1:
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of ‘void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<double, 3, 1>; Src = Eigen::Matrix<float, 4, 1>; Func = Eigen::internal::assign_op<double, float>]’:
/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:732:41:   required from ‘Derived& Eigen::PlainObjectBase<Derived>::_set_noalias(const Eigen::DenseBase<OtherDerived>&) [with OtherDerived = Eigen::Matrix<float, 4, 1>; Derived = Eigen::Matrix<double, 3, 1>]’
/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:537:19:   required from ‘Eigen::PlainObjectBase<Derived>::PlainObjectBase(const Eigen::DenseBase<OtherDerived>&) [with OtherDerived = Eigen::Matrix<float, 4, 1>; Derived = Eigen::Matrix<double, 3, 1>]’
/usr/include/eigen3/Eigen/src/Core/Matrix.h:377:29:   required from ‘Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::Matrix(const Eigen::EigenBase<OtherDerived>&) [with OtherDerived = Eigen::Matrix<float, 4, 1>; _Scalar = double; int _Rows = 3; int _Cols = 1; int _Options = 0; int _MaxRows = 3; int _MaxCols = 1]’
/media/zcw/黑桃k-固态/SLAM/小六/视觉惯性SLAM/第一部分 SLAM基础/第六章 三维空间中刚体旋转/6-transform/transform.cpp:25:34:   required from here
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:33:40: error: static assertion failed: YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES
     #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
                                        ^
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:190:3: note: in expansion of macro ‘EIGEN_STATIC_ASSERT’
   EIGEN_STATIC_ASSERT( \
   ^~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:833:3: note: in expansion of macro ‘EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE’
   EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(ActualDstTypeCleaned,Src)
   ^
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:33:40: error: static assertion failed: YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY
     #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
                                        ^
/usr/include/eigen3/Eigen/src/Core/util/XprHelper.h:816:3: note: in expansion of macro ‘EIGEN_STATIC_ASSERT’
   EIGEN_STATIC_ASSERT((Eigen::internal::has_ReturnType<ScalarBinaryOpTraits<LHS, RHS,BINOP> >::value), \
   ^~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:834:3: note: in expansion of macro ‘EIGEN_CHECK_BINARY_COMPATIBILIY’
   EIGEN_CHECK_BINARY_COMPATIBILIY(Func,typename ActualDstTypeCleaned::Scalar,typename Src::Scalar);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CMakeFiles/tansform.dir/build.make:75: recipe for target 'CMakeFiles/tansform.dir/transform.cpp.o' failed
make[2]: *** [CMakeFiles/tansform.dir/transform.cpp.o] Error 1
CMakeFiles/Makefile2:82: recipe for target 'CMakeFiles/tansform.dir/all' failed
make[1]: *** [CMakeFiles/tansform.dir/all] Error 2
Makefile:90: recipe for target 'all' failed
make: *** [all] Error 2

矩阵类型不匹配,比如Eigen::Vector4f和Eigen::Vector4d 

In file included from /usr/include/eigen3/Eigen/Core:366:0,
                 from /usr/include/eigen3/Eigen/Dense:1,
                 from /media/zcw/黑桃k-固态/SLAM/小六/视觉惯性SLAM/第一部分 SLAM基础/第六章 三维空间中刚体旋转/6-transform/transform.cpp:1:
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of ‘void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<float, 3, 1>; Src = Eigen::Matrix<float, 4, 1>; Func = Eigen::internal::assign_op<float, float>]’:
/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:732:41:   required from ‘Derived& Eigen::PlainObjectBase<Derived>::_set_noalias(const Eigen::DenseBase<OtherDerived>&) [with OtherDerived = Eigen::Matrix<float, 4, 1>; Derived = Eigen::Matrix<float, 3, 1>]’
/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:537:19:   required from ‘Eigen::PlainObjectBase<Derived>::PlainObjectBase(const Eigen::DenseBase<OtherDerived>&) [with OtherDerived = Eigen::Matrix<float, 4, 1>; Derived = Eigen::Matrix<float, 3, 1>]’
/usr/include/eigen3/Eigen/src/Core/Matrix.h:377:29:   required from ‘Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::Matrix(const Eigen::EigenBase<OtherDerived>&) [with OtherDerived = Eigen::Matrix<float, 4, 1>; _Scalar = float; int _Rows = 3; int _Cols = 1; int _Options = 0; int _MaxRows = 3; int _MaxCols = 1]’
/media/zcw/黑桃k-固态/SLAM/小六/视觉惯性SLAM/第一部分 SLAM基础/第六章 三维空间中刚体旋转/6-transform/transform.cpp:25:34:   required from here
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:33:40: error: static assertion failed: YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES
     #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
                                        ^
/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:190:3: note: in expansion of macro ‘EIGEN_STATIC_ASSERT’
   EIGEN_STATIC_ASSERT( \
   ^~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:833:3: note: in expansion of macro ‘EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE’
   EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(ActualDstTypeCleaned,Src)
   ^
CMakeFiles/tansform.dir/build.make:75: recipe for target 'CMakeFiles/tansform.dir/transform.cpp.o' failed
make[2]: *** [CMakeFiles/tansform.dir/transform.cpp.o] Error 1
CMakeFiles/Makefile2:82: recipe for target 'CMakeFiles/tansform.dir/all' failed
make[1]: *** [CMakeFiles/tansform.dir/all] Error 2
Makefile:90: recipe for target 'all' failed
make: *** [all] Error 2

 错误代码:

Eigen::Vector3f P_c = T_cw * P_w;

修改代码:

Eigen::Vector4f P_c = T_cw * P_w;

其中T_cw是四维欧式变换矩阵,P_w是四向量的空间坐标,所以改成Eigen::Vector4f

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值