ArduPilot / OctomapPlanner

ArduPilot Gazebo SITL 3D mapping and planning
119 stars 41 forks source link

Error when compiling "fcl" #1

Open BreederBai opened 5 years ago

BreederBai commented 5 years ago

When I execute the following code, I get an error when compiling the code.

git clone https://github.com/flexible-collision-library/fcl cd fcl mkdir build cd build cmake .. sudo make install

The error message is as follows:

Scanning dependencies of target test_gjk_libccd-inl_epa [ 95%] Building CXX object test/narrowphase/detail/convexity_based_algorithm/CMakeFiles/test_gjk_libccd-inl_epa.dir/test_gjk_libccd-inl_epa.cpp.o In file included from /usr/include/eigen3/Eigen/Core:348:0, from /usr/include/eigen3/Eigen/Dense:1, from /home/baiyang/src/fcl/include/fcl/common/types.h:46, from /home/baiyang/src/fcl/include/fcl/math/bv/AABB.h:41, from /home/baiyang/src/fcl/include/fcl/geometry/collision_geometry.h:43, from /home/baiyang/src/fcl/include/fcl/geometry/shape/shape_base.h:41, from /home/baiyang/src/fcl/include/fcl/geometry/shape/box.h:41, from /home/baiyang/src/fcl/include/fcl/narrowphase/detail/convexity_based_algorithm/gjk_libccd.h:47, from /home/baiyang/src/fcl/include/fcl/narrowphase/detail/convexity_based_algorithm/gjk_libccd-inl.h:41, from /home/baiyang/src/fcl/test/narrowphase/detail/convexity_based_algorithm/test_gjk_libccd-inl_epa.cpp:42: /usr/include/eigen3/Eigen/src/Core/Product.h: In instantiation of ‘struct Eigen::internal::product_result_scalar<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, Eigen::DenseShape, Eigen::DenseShape>’: /usr/include/eigen3/Eigen/src/Core/Product.h:78:73: required from ‘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:151: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:183: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:107:7: required from ‘class Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>’ /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:94:33: required from ‘Eigen::RotationBase<Derived, _Dim>::VectorType Eigen::RotationBase<Derived, _Dim>::_transformVector(const OtherVectorType&) const [with OtherVectorType = Eigen::Matrix<float, 3, 1>; Derived = Eigen::AngleAxis; int _Dim = 3; Eigen::RotationBase<Derived, _Dim>::VectorType = Eigen::Matrix<double, 3, 1>; typename Eigen::internal::traits::Scalar = double]’ /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:128:32: required from ‘static Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::ReturnType Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::run(const RotationDerived&, const OtherVectorType&) [with RotationDerived = Eigen::AngleAxis; OtherVectorType = Eigen::Matrix<float, 3, 1>; Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::ReturnType = Eigen::Matrix<double, 3, 1>; typename RotationDerived::Scalar = double]’ /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:72:89: required from ‘typename Eigen::internal::rotation_base_generic_product_selector<Derived, OtherDerived, OtherDerived:: IsVectorAtCompileTime>::ReturnType Eigen::RotationBase<Derived, _Dim>::operator(const Eigen::EigenBase&) const [with OtherDerived = Eigen::Matrix<float, 3, 1>; Derived = Eigen::AngleAxis; int _Dim = 3; typename Eigen::internal::rotation_base_generic_product_selector<Derived, OtherDerived, OtherDerived:: IsVectorAtCompileTime>::ReturnType = Eigen::Matrix<double, 3, 1>]’ /home/baiyang/src/fcl/test/narrowphase/detail/convexity_based_algorithm/test_gjk_libccd-inl_epa.cpp:242:40: required from here /usr/include/eigen3/Eigen/src/Core/Product.h:41:98: error: no type named ‘ReturnType’ in ‘struct Eigen::internal::scalar_product_traits<double, float>’ typedef typename scalar_product_traits<typename Lhs::Scalar, typename Rhs::Scalar>::ReturnType Scalar; ^ In file included from /usr/include/eigen3/Eigen/Core:344:0, from /usr/include/eigen3/Eigen/Dense:1, from /home/baiyang/src/fcl/include/fcl/common/types.h:46, from /home/baiyang/src/fcl/include/fcl/math/bv/AABB.h:41, from /home/baiyang/src/fcl/include/fcl/geometry/collision_geometry.h:43, from /home/baiyang/src/fcl/include/fcl/geometry/shape/shape_base.h:41, from /home/baiyang/src/fcl/include/fcl/geometry/shape/box.h:41, from /home/baiyang/src/fcl/include/fcl/narrowphase/detail/convexity_based_algorithm/gjk_libccd.h:47, from /home/baiyang/src/fcl/include/fcl/narrowphase/detail/convexity_based_algorithm/gjk_libccd-inl.h:41, from /home/baiyang/src/fcl/test/narrowphase/detail/convexity_based_algorithm/test_gjk_libccd-inl_epa.cpp:42: /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:151: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:183: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:107:7: required from ‘class Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>’ /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:94:33: required from ‘Eigen::RotationBase<Derived, _Dim>::VectorType Eigen::RotationBase<Derived, _Dim>::_transformVector(const OtherVectorType&) const [with OtherVectorType = Eigen::Matrix<float, 3, 1>; Derived = Eigen::AngleAxis; int _Dim = 3; Eigen::RotationBase<Derived, _Dim>::VectorType = Eigen::Matrix<double, 3, 1>; typename Eigen::internal::traits::Scalar = double]’ /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:128:32: required from ‘static Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::ReturnType Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::run(const RotationDerived&, const OtherVectorType&) [with RotationDerived = Eigen::AngleAxis; OtherVectorType = Eigen::Matrix<float, 3, 1>; Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::ReturnType = Eigen::Matrix<double, 3, 1>; typename RotationDerived::Scalar = double]’ /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:72:89: required from ‘typename Eigen::internal::rotation_base_generic_product_selector<Derived, OtherDerived, OtherDerived:: IsVectorAtCompileTime>::ReturnType Eigen::RotationBase<Derived, _Dim>::operator(const Eigen::EigenBase&) const [with OtherDerived = Eigen::Matrix<float, 3, 1>; Derived = Eigen::AngleAxis; int _Dim = 3; typename Eigen::internal::rotation_base_generic_product_selector<Derived, OtherDerived, OtherDerived:: IsVectorAtCompileTime>::ReturnType = Eigen::Matrix<double, 3, 1>]’ /home/baiyang/src/fcl/test/narrowphase/detail/convexity_based_algorithm/test_gjk_libccd-inl_epa.cpp:242:40: required from here /usr/include/eigen3/Eigen/src/Core/DenseBase.h:78:25: error: using-declaration for non-member at class scope using Base::operator; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:79:25: error: using-declaration for non-member at class scope using Base::operator/; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:80:17: error: using-declaration for non-member at class scope using Base::derived; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:81:17: error: using-declaration for non-member at class scope using Base::const_cast_derived; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:82:17: error: using-declaration for non-member at class scope using Base::rows; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:83:17: error: using-declaration for non-member at class scope using Base::cols; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:84:17: error: using-declaration for non-member at class scope using Base::size; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:85:17: error: using-declaration for non-member at class scope using Base::rowIndexByOuterInner; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:86:17: error: using-declaration for non-member at class scope using Base::colIndexByOuterInner; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:87:17: error: using-declaration for non-member at class scope using Base::coeff; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:88:17: error: using-declaration for non-member at class scope using Base::coeffByOuterInner; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:89:26: error: using-declaration for non-member at class scope using Base::operator(); ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:90:26: error: using-declaration for non-member at class scope using Base::operator[]; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:91:17: error: using-declaration for non-member at class scope using Base::x; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:92:17: error: using-declaration for non-member at class scope using Base::y; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:93:17: error: using-declaration for non-member at class scope using Base::z; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:94:17: error: using-declaration for non-member at class scope using Base::w; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:95:17: error: using-declaration for non-member at class scope using Base::stride; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:96:17: error: using-declaration for non-member at class scope using Base::innerStride; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:97:17: error: using-declaration for non-member at class scope using Base::outerStride; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:98:17: error: using-declaration for non-member at class scope using Base::rowStride; ^ /usr/include/eigen3/Eigen/src/Core/DenseBase.h:99:17: error: using-declaration for non-member at class scope using Base::colStride; ^ In file included from /usr/include/eigen3/Eigen/Core:345:0, from /usr/include/eigen3/Eigen/Dense:1, from /home/baiyang/src/fcl/include/fcl/common/types.h:46, from /home/baiyang/src/fcl/include/fcl/math/bv/AABB.h:41, from /home/baiyang/src/fcl/include/fcl/geometry/collision_geometry.h:43, from /home/baiyang/src/fcl/include/fcl/geometry/shape/shape_base.h:41, from /home/baiyang/src/fcl/include/fcl/geometry/shape/box.h:41, from /home/baiyang/src/fcl/include/fcl/narrowphase/detail/convexity_based_algorithm/gjk_libccd.h:47, from /home/baiyang/src/fcl/include/fcl/narrowphase/detail/convexity_based_algorithm/gjk_libccd-inl.h:41, from /home/baiyang/src/fcl/test/narrowphase/detail/convexity_based_algorithm/test_gjk_libccd-inl_epa.cpp:42: /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:151: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:183: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:107:7: required from ‘class Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>’ /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:94:33: required from ‘Eigen::RotationBase<Derived, _Dim>::VectorType Eigen::RotationBase<Derived, _Dim>::_transformVector(const OtherVectorType&) const [with OtherVectorType = Eigen::Matrix<float, 3, 1>; Derived = Eigen::AngleAxis; int _Dim = 3; Eigen::RotationBase<Derived, _Dim>::VectorType = Eigen::Matrix<double, 3, 1>; typename Eigen::internal::traits::Scalar = double]’ /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:128:32: required from ‘static Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::ReturnType Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::run(const RotationDerived&, const OtherVectorType&) [with RotationDerived = Eigen::AngleAxis; OtherVectorType = Eigen::Matrix<float, 3, 1>; Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::ReturnType = Eigen::Matrix<double, 3, 1>; typename RotationDerived::Scalar = double]’ /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:72:89: required from ‘typename Eigen::internal::rotation_base_generic_product_selector<Derived, OtherDerived, OtherDerived:: IsVectorAtCompileTime>::ReturnType Eigen::RotationBase<Derived, _Dim>::operator(const Eigen::EigenBase&) const [with OtherDerived = Eigen::Matrix<float, 3, 1>; Derived = Eigen::AngleAxis; int _Dim = 3; typename Eigen::internal::rotation_base_generic_product_selector<Derived, OtherDerived, OtherDerived:: IsVectorAtCompileTime>::ReturnType = Eigen::Matrix<double, 3, 1>]’ /home/baiyang/src/fcl/test/narrowphase/detail/convexity_based_algorithm/test_gjk_libccd-inl_epa.cpp:242:40: required from here /usr/include/eigen3/Eigen/src/Core/MatrixBase.h:70: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> >}::derived’ 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::derived; ^ /usr/include/eigen3/Eigen/src/Core/MatrixBase.h:71: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> >}::const_cast_derived’ 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::const_cast_derived; ^ /usr/include/eigen3/Eigen/src/Core/MatrixBase.h:72: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> >}::rows’ 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::rows; ^ /usr/include/eigen3/Eigen/src/Core/MatrixBase.h:73: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> >}::cols’ 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::cols; ^ /usr/include/eigen3/Eigen/src/Core/MatrixBase.h:74: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> >}::size’ 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::size; ^ /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:76: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> >}::coeffRef’ 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::coeffRef; ^ /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/=; ^ /usr/include/eigen3/Eigen/src/Core/MatrixBase.h:83: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:84: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:348:0, from /usr/include/eigen3/Eigen/Dense:1, from /home/baiyang/src/fcl/include/fcl/common/types.h:46, from /home/baiyang/src/fcl/include/fcl/math/bv/AABB.h:41, from /home/baiyang/src/fcl/include/fcl/geometry/collision_geometry.h:43, from /home/baiyang/src/fcl/include/fcl/geometry/shape/shape_base.h:41, from /home/baiyang/src/fcl/include/fcl/geometry/shape/box.h:41, from /home/baiyang/src/fcl/include/fcl/narrowphase/detail/convexity_based_algorithm/gjk_libccd.h:47, from /home/baiyang/src/fcl/include/fcl/narrowphase/detail/convexity_based_algorithm/gjk_libccd-inl.h:41, from /home/baiyang/src/fcl/test/narrowphase/detail/convexity_based_algorithm/test_gjk_libccd-inl_epa.cpp:42: /usr/include/eigen3/Eigen/src/Core/Product.h: In instantiation of ‘class Eigen::ProductImpl<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0, Eigen::Dense>’: /usr/include/eigen3/Eigen/src/Core/Product.h:107:7: required from ‘class Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>’ /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:94:33: required from ‘Eigen::RotationBase<Derived, _Dim>::VectorType Eigen::RotationBase<Derived, _Dim>::_transformVector(const OtherVectorType&) const [with OtherVectorType = Eigen::Matrix<float, 3, 1>; Derived = Eigen::AngleAxis; int _Dim = 3; Eigen::RotationBase<Derived, _Dim>::VectorType = Eigen::Matrix<double, 3, 1>; typename Eigen::internal::traits::Scalar = double]’ /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:128:32: required from ‘static Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::ReturnType Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::run(const RotationDerived&, const OtherVectorType&) [with RotationDerived = Eigen::AngleAxis; OtherVectorType = Eigen::Matrix<float, 3, 1>; Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::ReturnType = Eigen::Matrix<double, 3, 1>; typename RotationDerived::Scalar = double]’ /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:72:89: required from ‘typename Eigen::internal::rotation_base_generic_product_selector<Derived, OtherDerived, OtherDerived:: IsVectorAtCompileTime>::ReturnType Eigen::RotationBase<Derived, _Dim>::operator(const Eigen::EigenBase&) const [with OtherDerived = Eigen::Matrix<float, 3, 1>; Derived = Eigen::AngleAxis; int _Dim = 3; typename Eigen::internal::rotation_base_generic_product_selector<Derived, OtherDerived, OtherDerived:: IsVectorAtCompileTime>::ReturnType = Eigen::Matrix<double, 3, 1>]’ /home/baiyang/src/fcl/test/narrowphase/detail/convexity_based_algorithm/test_gjk_libccd-inl_epa.cpp:242:40: required from here /usr/include/eigen3/Eigen/src/Core/Product.h:191:776: error: no members matching ‘Eigen::ProductImpl<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0, Eigen::Dense>::Base {aka Eigen::internal::dense_product_base<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0, 3>}::derived’ in ‘Eigen::ProductImpl<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0, Eigen::Dense>::Base {aka 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:191:797: error: no members matching ‘Eigen::ProductImpl<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0, Eigen::Dense>::Base {aka Eigen::internal::dense_product_base<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0, 3>}::const_cast_derived’ in ‘Eigen::ProductImpl<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0, Eigen::Dense>::Base {aka class Eigen::internal::dense_product_base<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0, 3>}’ In file included from /usr/include/eigen3/Eigen/Core:348:0, from /usr/include/eigen3/Eigen/Dense:1, from /home/baiyang/src/fcl/include/fcl/common/types.h:46, from /home/baiyang/src/fcl/include/fcl/math/bv/AABB.h:41, from /home/baiyang/src/fcl/include/fcl/geometry/collision_geometry.h:43, from /home/baiyang/src/fcl/include/fcl/geometry/shape/shape_base.h:41, from /home/baiyang/src/fcl/include/fcl/geometry/shape/box.h:41, from /home/baiyang/src/fcl/include/fcl/narrowphase/detail/convexity_based_algorithm/gjk_libccd.h:47, from /home/baiyang/src/fcl/include/fcl/narrowphase/detail/convexity_based_algorithm/gjk_libccd-inl.h:41, from /home/baiyang/src/fcl/test/narrowphase/detail/convexity_based_algorithm/test_gjk_libccd-inl_epa.cpp:42: /usr/include/eigen3/Eigen/src/Core/Product.h: In instantiation of ‘class Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>’: /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:94:33: required from ‘Eigen::RotationBase<Derived, _Dim>::VectorType Eigen::RotationBase<Derived, _Dim>::_transformVector(const OtherVectorType&) const [with OtherVectorType = Eigen::Matrix<float, 3, 1>; Derived = Eigen::AngleAxis; int _Dim = 3; Eigen::RotationBase<Derived, _Dim>::VectorType = Eigen::Matrix<double, 3, 1>; typename Eigen::internal::traits::Scalar = double]’ /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:128:32: required from ‘static Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::ReturnType Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::run(const RotationDerived&, const OtherVectorType&) [with RotationDerived = Eigen::AngleAxis; OtherVectorType = Eigen::Matrix<float, 3, 1>; Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::ReturnType = Eigen::Matrix<double, 3, 1>; typename RotationDerived::Scalar = double]’ /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:72:89: required from ‘typename Eigen::internal::rotation_base_generic_product_selector<Derived, OtherDerived, OtherDerived:: IsVectorAtCompileTime>::ReturnType Eigen::RotationBase<Derived, _Dim>::operator(const Eigen::EigenBase&) const [with OtherDerived = Eigen::Matrix<float, 3, 1>; Derived = Eigen::AngleAxis; int _Dim = 3; typename Eigen::internal::rotation_base_generic_product_selector<Derived, OtherDerived, OtherDerived:: IsVectorAtCompileTime>::ReturnType = Eigen::Matrix<double, 3, 1>]’ /home/baiyang/src/fcl/test/narrowphase/detail/convexity_based_algorithm/test_gjk_libccd-inl_epa.cpp:242:40: required from here /usr/include/eigen3/Eigen/src/Core/Product.h:122:776: error: no members matching ‘Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>::Base {aka Eigen::internal::dense_product_base<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0, 3>}::derived’ in ‘Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>::Base {aka 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:122:797: error: no members matching ‘Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>::Base {aka Eigen::internal::dense_product_base<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0, 3>}::const_cast_derived’ in ‘Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>::Base {aka class Eigen::internal::dense_product_base<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0, 3>}’ In file included from /usr/include/eigen3/Eigen/Geometry:40:0, from /usr/include/eigen3/Eigen/Dense:6, from /home/baiyang/src/fcl/include/fcl/common/types.h:46, from /home/baiyang/src/fcl/include/fcl/math/bv/AABB.h:41, from /home/baiyang/src/fcl/include/fcl/geometry/collision_geometry.h:43, from /home/baiyang/src/fcl/include/fcl/geometry/shape/shape_base.h:41, from /home/baiyang/src/fcl/include/fcl/geometry/shape/box.h:41, from /home/baiyang/src/fcl/include/fcl/narrowphase/detail/convexity_based_algorithm/gjk_libccd.h:47, from /home/baiyang/src/fcl/include/fcl/narrowphase/detail/convexity_based_algorithm/gjk_libccd-inl.h:41, from /home/baiyang/src/fcl/test/narrowphase/detail/convexity_based_algorithm/test_gjk_libccd-inl_epa.cpp:42: /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h: In instantiation of ‘Eigen::RotationBase<Derived, _Dim>::VectorType Eigen::RotationBase<Derived, _Dim>::_transformVector(const OtherVectorType&) const [with OtherVectorType = Eigen::Matrix<float, 3, 1>; Derived = Eigen::AngleAxis; int _Dim = 3; Eigen::RotationBase<Derived, _Dim>::VectorType = Eigen::Matrix<double, 3, 1>; typename Eigen::internal::traits::Scalar = double]’: /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:128:32: required from ‘static Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::ReturnType Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::run(const RotationDerived&, const OtherVectorType&) [with RotationDerived = Eigen::AngleAxis; OtherVectorType = Eigen::Matrix<float, 3, 1>; Eigen::internal::rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true>::ReturnType = Eigen::Matrix<double, 3, 1>; typename RotationDerived::Scalar = double]’ /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:72:89: required from ‘typename Eigen::internal::rotation_base_generic_product_selector<Derived, OtherDerived, OtherDerived:: IsVectorAtCompileTime>::ReturnType Eigen::RotationBase<Derived, _Dim>::operator(const Eigen::EigenBase&) const [with OtherDerived = Eigen::Matrix<float, 3, 1>; Derived = Eigen::AngleAxis; int _Dim = 3; typename Eigen::internal::rotation_base_generic_product_selector<Derived, OtherDerived, OtherDerived:: IsVectorAtCompileTime>::ReturnType = Eigen::Matrix<double, 3, 1>]’ /home/baiyang/src/fcl/test/narrowphase/detail/convexity_based_algorithm/test_gjk_libccd-inl_epa.cpp:242:40: required from here /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h:94:35: error: could not convert ‘((Eigen::MatrixBase<Eigen::Matrix<double, 3, 3> >)(& Eigen::RotationBase<Derived, _Dim>::toRotationMatrix() const [with Derived = Eigen::AngleAxis; int _Dim = 3; Eigen::RotationBase<Derived, _Dim>::RotationMatrixType = Eigen::Matrix<double, 3, 3>; typename Eigen::internal::traits::Scalar = double]()))->Eigen::MatrixBase::operator<Eigen::Matrix<float, 3, 1> >(((const Eigen::MatrixBase<Eigen::Matrix<float, 3, 1> >)(& v)))’ from ‘const Eigen::Product<Eigen::Matrix<double, 3, 3>, Eigen::Matrix<float, 3, 1>, 0>’ to ‘Eigen::RotationBase<Eigen::AngleAxis, 3>::VectorType {aka Eigen::Matrix<double, 3, 1>}’ { return toRotationMatrix() v; } ^ In file included from /usr/include/eigen3/Eigen/Core:350:0, from /usr/include/eigen3/Eigen/Dense:1, from /home/baiyang/src/fcl/include/fcl/common/types.h:46, from /home/baiyang/src/fcl/include/fcl/math/bv/AABB.h:41, from /home/baiyang/src/fcl/include/fcl/geometry/collision_geometry.h:43, from /home/baiyang/src/fcl/include/fcl/geometry/shape/shape_base.h:41, from /home/baiyang/src/fcl/include/fcl/geometry/shape/box.h:41, from /home/baiyang/src/fcl/include/fcl/narrowphase/detail/convexity_based_algorithm/gjk_libccd.h:47, from /home/baiyang/src/fcl/include/fcl/narrowphase/detail/convexity_based_algorithm/gjk_libccd-inl.h:41, from /home/baiyang/src/fcl/test/narrowphase/detail/convexity_based_algorithm/test_gjk_libccd-inl_epa.cpp:42: /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<double, 3, 1>; Func = Eigen::internal::assign_op]’: /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:712:27: required from ‘void Eigen::internal::call_assignment(Dst&, const Src&, const Func&, typename Eigen::internal::enable_if<(! Eigen::internal::evaluator_assume_aliasing::value), void>::type) [with Dst = Eigen::Matrix<float, 3, 1>; Src = Eigen::Matrix<double, 3, 1>; Func = Eigen::internal::assign_op; typename Eigen::internal::enable_if<(! Eigen::internal::evaluator_assume_aliasing::value), void>::type = void*]’ /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:693:18: required from ‘void Eigen::internal::call_assignment(Dst&, const Src&) [with Dst = Eigen::Matrix<float, 3, 1>; Src = Eigen::Matrix<double, 3, 1>]’ /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:682:32: required from ‘Derived& Eigen::PlainObjectBase::_set(const Eigen::DenseBase&) [with OtherDerived = Eigen::Matrix<double, 3, 1>; Derived = Eigen::Matrix<float, 3, 1>]’ /usr/include/eigen3/Eigen/src/Core/Matrix.h:225:24: required from ‘Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::operator=(const Eigen::DenseBase&) [with OtherDerived = Eigen::Matrix<double, 3, 1>; _Scalar = float; int _Rows = 3; int _Cols = 1; int _Options = 0; int _MaxRows = 3; int _MaxCols = 1]’ /home/baiyang/src/fcl/test/narrowphase/detail/convexity_based_algorithm/test_gjk_libccd-inl_epa.cpp:242:17: required from here /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:745:3: error: static assertion failed: YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY EIGEN_CHECK_BINARY_COMPATIBILIY(Func,typename ActualDstTypeCleaned::Scalar,typename Src::Scalar); ^ test/narrowphase/detail/convexity_based_algorithm/CMakeFiles/test_gjk_libccd-inl_epa.dir/build.make:62: recipe for target 'test/narrowphase/detail/convexity_based_algorithm/CMakeFiles/test_gjk_libccd-inl_epa.dir/test_gjk_libccd-inl_epa.cpp.o' failed make[2]: [test/narrowphase/detail/convexity_based_algorithm/CMakeFiles/test_gjk_libccd-inl_epa.dir/test_gjk_libccd-inl_epa.cpp.o] Error 1 CMakeFiles/Makefile2:1701: recipe for target 'test/narrowphase/detail/convexity_based_algorithm/CMakeFiles/test_gjk_libccd-inl_epa.dir/all' failed make[1]: [test/narrowphase/detail/convexity_based_algorithm/CMakeFiles/test_gjk_libccd-inl_epa.dir/all] Error 2 Makefile:138: recipe for target 'all' failed make: *** [all] Error 2

ayushgaud commented 5 years ago

I have updated the readme to first install other dependencies. Could you please try that once. If there are still issues please let me know. Also, please share your platform details too. I have tested this on Ubuntu 16.04 as well as 18.04 both using master branches for both libccd and fcl.

BreederBai commented 5 years ago

@ayushgaud I am using ubuntu 16.04 and the GCC version is 5.4. Through my attempt, it should be that the compiler I am using is older.This is my link to solve this problem.https://github.com/flexible-collision-library/fcl/issues/349. I am very happy to hear from you. I am interested in what you have done. I am looking forward to the obstacle avoidance function that can be implemented in Ardupilot Copter. If you don't mind, can you share the progress of the current obstacle avoidance work? My English is very poor, I hope I have not offended you.

ayushgaud commented 5 years ago

You may read the blog posts 1 and 2 as a starting point. If you have any further questions please let me know.

Awesome1995 commented 5 years ago

@BreederBai hello! I have encountered a similar problem with you, perhaps because of the libccd library. My solution is: git clone https://github.com/danfis/libccd cd libccd mkdir build && cd build cmake -G "Unix Makefiles" -DBUILD_SHARED_LIBS=ON -DENABLE_DOUBLE_PRECISION=ON .. make && sudo make install. Just add the option -DENABLE_DOUBLE_PRECISION=ON, and problem is solved. You can have a try, best luck!

BreederBai commented 5 years ago

@Awesome1995 thank you for your help.Now flexible-collision-library/fcl has made some changes,which can be compiled according to the previous compilation method.