vslam compilation error
Following is the error reported on rosmake in laser_slam. It is checked out from svn, Revision: 39215. I am building it on ROS electric, Ubuntu 10.04
Most errors are invalid conversion from 'const double*' to 'double *' . I was able to build previous revision in diamondback.
[rosmake-0] Starting >>> vocabulary_tree [ make ]
[ rosmake ] Last 40 linesa: 5.8 sec ] [ vocabulary_tree: 0.4 sec ] [ 2 Active 59/86 Complete ]
{-------------------------------------------------------------------------------
make[3]: Entering directory `/opt/ros/topological_navigation_rosinstall/vslam/sba/build'
make[3]: Leaving directory `/opt/ros/topological_navigation_rosinstall/vslam/sba/build'
[ 32%] Built target sba_vis
make[3]: Entering directory `/opt/ros/topological_navigation_rosinstall/vslam/sba/build'
make[3]: Leaving directory `/opt/ros/topological_navigation_rosinstall/vslam/sba/build'
make[3]: Entering directory `/opt/ros/topological_navigation_rosinstall/vslam/sba/build'
[ 34%] Building CXX object CMakeFiles/sba.dir/src/csparse.o
In file included from /opt/ros/topological_navigation_rosinstall/vslam/sba/include/sba/csparse.h:74,
from /opt/ros/topological_navigation_rosinstall/vslam/sba/src/csparse.cpp:40:
/opt/ros/topological_navigation_rosinstall/vslam/bpcg/include/bpcg/bpcg.h: In member function ‘void sba::jacobiBPCG<N>::mMV2(std::vector<Eigen::Matrix<double, N, N, ((Eigen::._95)0u | (((N == 1) && (N != 1)) ? (Eigen::._95)1u : (((N == 1) && (N != 1)) ? (Eigen::._95)0u : (Eigen::._95)0u))), N, N>, Eigen::aligned_allocator<Eigen::Matrix<double, N, N, ((Eigen::._95)0u | (((N == 1) && (N != 1)) ? (Eigen::._95)1u : (((N == 1) && (N != 1)) ? (Eigen::._95)0u : (Eigen::._95)0u))), N, N> > >&, const Eigen::VectorXd&, Eigen::VectorXd&) [with int N = 6]’:
/opt/ros/topological_navigation_rosinstall/vslam/bpcg/include/bpcg/bpcg.h:300: instantiated from ‘int sba::jacobiBPCG<N>::doBPCG2(int, double, std::vector<Eigen::Matrix<double, N, N, ((Eigen::._95)0u | (((N == 1) && (N != 1)) ? (Eigen::._95)1u : (((N == 1) && (N != 1)) ? (Eigen::._95)0u : (Eigen::._95)0u))), N, N>, Eigen::aligned_allocator<Eigen::Matrix<double, N, N, ((Eigen::._95)0u | (((N == 1) && (N != 1)) ? (Eigen::._95)1u : (((N == 1) && (N != 1)) ? (Eigen::._95)0u : (Eigen::._95)0u))), N, N> > >&, std::vector<std::map<int, Eigen::Matrix<double, N, N, ((Eigen::._95)0u | (((N == 1) && (N != 1)) ? (Eigen::._95)1u : (((N == 1) && (N != 1)) ? (Eigen::._95)0u : (Eigen::._95)0u))), N, N>, std::less<int>, Eigen::aligned_allocator<Eigen::Matrix<double, N, N, ((Eigen::._95)0u | (((N == 1) && (N != 1)) ? (Eigen::._95)1u : (((N == 1) && (N != 1)) ? (Eigen::._95)0u : (Eigen::._95)0u))), N, N> > >, std::allocator<std::map<int, Eigen::Matrix<double, N, N, ((Eigen::._95)0u | (((N == 1) && (N != 1)) ? (Eigen::._95)1u : (((N == 1) && (N != 1)) ? (Eigen::._95)0u : (Eigen::._95)0u))), N, N>, std::less<int>, Eigen::aligned_allocator<Eigen::Matrix<double, N, N, ((Eigen::._95)0u | (((N == 1) && (N != 1)) ? (Eigen::._95)1u : (((N == 1) && (N != 1)) ? (Eigen::._95)0u : (Eigen::._95)0u))), N, N> > > > >&, Eigen::VectorXd&, Eigen::VectorXd&, bool, bool) [with int N = 6]’
/opt/ros/topological_navigation_rosinstall/vslam/sba/src/csparse.cpp:392: instantiated from here
/opt/ros/topological_navigation_rosinstall/vslam/bpcg/include/bpcg/bpcg.h:152: error: invalid conversion from ‘const double*’ to ‘double*’
/opt/ros/topological_navigation_rosinstall/vslam/bpcg/include/bpcg/bpcg.h:152: error: initializing argument 1 of ‘Eigen::Map ...