ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

RGBDslam error in Fuerte and electric

asked 2012-12-15 19:29:03 -0600

autorover gravatar image

updated 2014-01-28 17:14:35 -0600

ngrennan gravatar image

After trying any paths I could find, I seem to have run up against a wall I can't get past. I have tried rgbdslam in fuerte and electric, on the same computer but in different /opt/ros/ directories, but with similar results either way.

When I try rosmake rgbdslam_freiburg in fuerte, I get an "undefined reference to g2o::globalStats" message multiple times.

  graph_manager.cpp:(.text._ZN3g2o11BlockSolverINS_17BlockSolverTraitsILi6ELi3EEEE16computeMarginalsERNS_17SparseBlockMatrixIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEEEERKSt6vectorISt4pairIiiESaISC_EE[g2o::BlockSolver<g2o::BlockSolverTraits<6, 3> >::computeMarginals(g2o::SparseBlockMatrix<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > const&)]+0x57): undefined reference to `g2o::globalStats'
  CMakeFiles/rgbdslam.dir/src/graph_manager.o: In function `g2o::BlockSolver<g2o::BlockSolverTraits<6, 3> >::computeMarginals()':
  graph_manager.cpp:(.text._ZN3g2o11BlockSolverINS_17BlockSolverTraitsILi6ELi3EEEE16computeMarginalsEv[g2o::BlockSolver<g2o::BlockSolverTraits<6, 3> >::computeMarginals()]+0xe5): undefined reference to `g2o::globalStats'
  CMakeFiles/rgbdslam.dir/src/graph_manager.o: In function `g2o::LinearSolverCholmod<Eigen::Matrix<double, 6, 6, 0, 6, 6> >::computeSymbolicDecomposition(g2o::SparseBlockMatrix<Eigen::Matrix<double, 6, 6, 0, 6, 6> > const&)':
  graph_manager.cpp:(.text._ZN3g2o19LinearSolverCholmodIN5Eigen6MatrixIdLi6ELi6ELi0ELi6ELi6EEEE28computeSymbolicDecompositionERKNS_17SparseBlockMatrixIS3_EE[g2o::LinearSolverCholmod<Eigen::Matrix<double, 6, 6, 0, 6, 6> >::computeSymbolicDecomposition(g2o::SparseBlockMatrix<Eigen::Matrix<double, 6, 6, 0, 6, 6> > const&)]+0x73): undefined reference to `g2o::globalStats'
  CMakeFiles/rgbdslam.dir/src/graph_manager.o: In function `g2o::LinearSolverCholmod<Eigen::Matrix<double, 6, 6, 0, 6, 6> >::solvePattern(g2o::SparseBlockMatrix<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > const&, g2o::SparseBlockMatrix<Eigen::Matrix<double, 6, 6, 0, 6, 6> > const&)':
  graph_manager.cpp:(.text._ZN3g2o19LinearSolverCholmodIN5Eigen6MatrixIdLi6ELi6ELi0ELi6ELi6EEEE12solvePatternERNS_17SparseBlockMatrixINS2_IdLin1ELin1ELi0ELin1ELin1EEEEERKSt6vectorISt4pairIiiESaISB_EERKNS5_IS3_EE[g2o::LinearSolverCholmod<Eigen::Matrix<double, 6, 6, 0, 6, 6> >::solvePattern(g2o::SparseBlockMatrix<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > const&, g2o::SparseBlockMatrix<Eigen::Matrix<double, 6, 6, 0, 6, 6> > const&)]+0x19d): undefined reference to `g2o::globalStats'
  CMakeFiles/rgbdslam.dir/src/graph_manager.o: In function `g2o::LinearSolverCholmod<Eigen::Matrix<double, 6, 6, 0, 6, 6> >::solveBlocks(double**&, g2o::SparseBlockMatrix<Eigen::Matrix<double, 6, 6, 0, 6, 6> > const&)':
  graph_manager.cpp:(.text._ZN3g2o19LinearSolverCholmodIN5Eigen6MatrixIdLi6ELi6ELi0ELi6ELi6EEEE11solveBlocksERPPdRKNS_17SparseBlockMatrixIS3_EE[g2o::LinearSolverCholmod<Eigen::Matrix<double, 6, 6, 0, 6, 6> >::solveBlocks(double**&, g2o::SparseBlockMatrix<Eigen::Matrix<double, 6, 6, 0, 6, 6> > const&)]+0x183): undefined reference to `g2o::globalStats'
  CMakeFiles/rgbdslam.dir/src/graph_manager.o:graph_manager.cpp:(.text._ZN3g2o19LinearSolverCholmodIN5Eigen6MatrixIdLi6ELi6ELi0ELi6ELi6EEEE5solveERKNS_17SparseBlockMatrixIS3_EEPdS9_[g2o::LinearSolverCholmod<Eigen::Matrix<double, 6, 6, 0, 6, 6> >::solve(g2o::SparseBlockMatrix<Eigen::Matrix<double, 6, 6, 0, 6, 6> > const&, double*, double*)]+0x112): more undefined references to `g2o::globalStats' follow
  CMakeFiles/rgbdslam.dir/src/graph_manager.o: In function `g2o::LinearSolverCholmod<Eigen::Matrix<double, 6, 6, 0, 6, 6> >::solve(g2o::SparseBlockMatrix<Eigen::Matrix<double, 6, 6, 0, 6, 6> > const&, double*, double*)':
  graph_manager.cpp:(.text._ZN3g2o19LinearSolverCholmodIN5Eigen6MatrixIdLi6ELi6ELi0ELi6ELi6EEEE5solveERKNS_17SparseBlockMatrixIS3_EEPdS9_[g2o::LinearSolverCholmod<Eigen::Matrix<double, 6, 6, 0, 6, 6> >::solve(g2o::SparseBlockMatrix<Eigen::Matrix<double, 6, 6, 0, 6, 6> > const&, double*, double*)]+0x220): undefined reference to `g2o::writeCCSMatrix(char const*, int, int, int const*, int const*, double const*, bool)'
  CMakeFiles/rgbdslam.dir/src/graph_manager.o: In function `g2o::LinearSolverCSparse<Eigen::Matrix ...
(more)
edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
1

answered 2012-12-16 15:12:45 -0600

yigit gravatar image

updated 2012-12-17 23:36:17 -0600

Hello autorover,

I just wanted to share my experience, I don't know what I did was the right thing though.

On fuerte, after getting a bunch of g2o errors, I removed libg2o package. Downloaded the source and built g2o in the vslam stack. https://code.ros.org/svn/ros-pkg/stacks/vslam/trunk/

Then I needed to delete the line

find_package(g2o REQUIRED)

in the cmakelists and change the dependence entry about g2o in the manisfest.xml as:

<rosdep name="libg2o"/>  ----> <depend package="g2o"/>
  • CMake and manifest files are in /rgbdslam_freiburg/rgbdslam

Again, I doubt that this is the right way of getting it to work, however I didn't question the method after seeing it working.

I have to tell that it explicitly states here not to use the g2o package instead of libg2o. But this is how I did, you might want to give it a try.

edit flag offensive delete link more

Comments

Thanks, I managed to get it working thanks to another comment and it's exactly what you said. The libg2o needed to be uninstalled and was probably causing issues with the other g2o package I had installed. We should get these fuerte instructions posted somewhere so others can bypass these issues.

autorover gravatar image autorover  ( 2012-12-17 14:00:55 -0600 )edit

what is the command for unistalling libg2o or g2o? thanks.

K_Yousif gravatar image K_Yousif  ( 2012-12-17 17:56:46 -0600 )edit

libg2o is a linux package. you can remove it by the command apt-get remove libg2o. g2o is a ros package, you can delete the folder to remove g2o.

yigit gravatar image yigit  ( 2012-12-18 13:53:50 -0600 )edit

Thanks for your quick response, however when i type this command I get: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

and I cannot delete or move any ros folders. What do you think?

K_Yousif gravatar image K_Yousif  ( 2012-12-18 14:06:32 -0600 )edit

you need to call apt-get as root. Try this sudo apt-get remove libg2o. I am not saying you need to remove any package, I don't know enough about your situation. However, if you need to remove a folder on ubuntu, use this command "rm -rf path_of_the_folder"

yigit gravatar image yigit  ( 2012-12-18 15:25:31 -0600 )edit

when you got rgbdslam working were you able to view the 3D point cloud reconstruction? I followed your instructions and got it running. The rgb and depth feeds are working. SURF features are detected & correspondences b/w them looks good. but when I select to process the frames no point cloud shows?

tgaaly gravatar image tgaaly  ( 2012-12-18 21:33:42 -0600 )edit

I configured it once but don't remember exactly how. Do you know if the depth-registration has to be enabled or disabled?

yigit gravatar image yigit  ( 2012-12-18 21:43:38 -0600 )edit
0

answered 2012-12-17 12:37:17 -0600

tgaaly gravatar image

updated 2012-12-17 12:53:26 -0600

I followed the steps by installing g2o separately and changing the manifest...etc.

Now when I execute rgbdslam (kinect+rgbdslam.launch) the UI pops up and the rgb and depth feeds are shown.

When I click on space or select "process" from the menu, it crashes.

I get the following error:

================================================================================REQUIRED process [rgbdslam-23] has died!
process has died [pid 16367, exit code -11, cmd /home/asctec/ros_workspace/rgbdslam_freiburg/rgbdslam/bin/rgbdslam __name:=rgbdslam __log:=/home/asctec/.ros/log/ec9ae076-48a9-11e2-af27-000e8e31444e/rgbdslam-23.log].
log file: /home/asctec/.ros/log/ec9ae076-48a9-11e2-af27-000e8e31444e/rgbdslam-23*.log
Initiating shutdown!
================================================================================

The log file is not actually stored so Im not sure whats going on under the hood.

Does anyone know why this happens?

edit flag offensive delete link more

Comments

I didn't get any error after making rgbdslam and wouldn't know, but the separate thread you made should suit the issue better.

autorover gravatar image autorover  ( 2012-12-17 14:02:05 -0600 )edit

fixed this issue. the feature extractor and detector were set to SIFTGPU in the kinect+rgbdslam.launch file. and since I dont have a GPU I switched this to SURF and it doesnt crash anymore

tgaaly gravatar image tgaaly  ( 2012-12-18 21:34:08 -0600 )edit
0

answered 2012-12-17 18:02:21 -0600

Hey guys,

I followed your instruction and I got the following error.

svn --non-interactive --config-dir /home/samme/trunk/g2o/svnconf co https://svn.openslam.org/data/svn/g2o/trunk build/g2o svn: OPTIONS of 'https://svn.openslam.org/data/svn/g2o/trunk': Server certificate verification failed: issuer is not trusted (https://svn.openslam.org)

Note: I had previously downloaded g2o from the svn: https://openslam.informatik.uni-freiburg.de/data/svn/g2o/trunk/. I then moved the file trunk to the rubbish bin and downloaded g2o again from the svn : https://code.ros.org/svn/ros-pkg/stacks/vslam/trunk/

I am not sure if there is a conflict because when I type: svn checkout https://svn.openslam.org/data/svn/g2o/trunk

I get: svn: 'trunk' is already a working copy for a different URL

Any ideas?

Thanks

edit flag offensive delete link more

Comments

K_Yousif, this is completely different. Why don't you start a new thread? It will be helpful for others who have the same problem.

yigit gravatar image yigit  ( 2012-12-17 23:21:35 -0600 )edit

edit the Makefile in g2o: add "--trust-serve-cert" before "--non-interactive" on the line that sets the SVN_CMDLINE

tgaaly gravatar image tgaaly  ( 2012-12-18 00:07:01 -0600 )edit

I am still having a problem (command not found), I will make a new thread.

K_Yousif gravatar image K_Yousif  ( 2012-12-18 12:17:50 -0600 )edit

fixed this issue. the feature extractor and detector were set to SIFTGPU in the kinect+rgbdslam.launch file. and since I dont have a GPU I switched this to SURF and it doesnt crash anymore

tgaaly gravatar image tgaaly  ( 2012-12-18 19:33:27 -0600 )edit

you have to add "--trust-server-cert" instead of the suggested "--trust-serve-cert" i guess it was just a typo.

Schluchti gravatar image Schluchti  ( 2013-05-28 22:29:45 -0600 )edit

Question Tools

2 followers

Stats

Asked: 2012-12-15 19:29:03 -0600

Seen: 1,518 times

Last updated: Dec 17 '12