tum-vision / dvo_slam

Dense Visual Odometry and SLAM
632 stars 306 forks source link

addVertex: FATAL, a vertex with (negative) ID #12

Closed jekekrantz closed 10 years ago

jekekrantz commented 10 years ago

Hi, Im trying to run the benchmark data(here on rgbd_dataset_freiburg1_room) but I keep getting error messages like this:

addVertex: FATAL, a vertex with (negative) ID -5 cannot be inserted in the graph addVertex: FATAL, a vertex with (negative) ID -4 cannot be inserted in the graph addVertex: FATAL, a vertex with (negative) ID -3 cannot be inserted in the graph addVertex: FATAL, a vertex with (negative) ID -2 cannot be inserted in the graph addVertex: FATAL, a vertex with (negative) ID -1 cannot be inserted in the graph addVertex: FATAL, a vertex with (negative) ID -9 cannot be inserted in the graph addVertex: FATAL, a vertex with (negative) ID -8 cannot be inserted in the graph addVertex: FATAL, a vertex with (negative) ID -7 cannot be inserted in the graph addVertex: FATAL, a vertex with (negative) ID -6 cannot be inserted in the graph

benchmark: /home/johane/fuerte_workspace/sandbox/dvo_slam/dvo_slam/src/keyframe_graph.cpp:734: void dvo_slam::internal::KeyframeGraphImpl::addGraph(g2o::OptimizableGraph*): Assertion `v' failed.

From a little bit of debugging it seems like line 764 in keyframe_graph.cpp is the place where the negative numbers are produced. Any help on resolving this issue would be greatly appreciated!

Cheers, Johan Ekekrantz

christiankerl commented 10 years ago

g2o recently changed the addVertex method. revision RainerKuemmerle/g2o@67d5fa758775e1d0a5fa249cd429c1d596cb184f still works. You can change the revision in dvo_slam/g2o/Makefile

jekekrantz commented 10 years ago

Thank you, i got it working by adding

GIT_REVISION=67d5fa7

to the g2o makefile.

amiltonwong commented 9 years ago

Hi, Johan Ekekrantz,

As taking reference from your suggestion, I modified as follows:

all: sophus

'# GIT_DIR: name of directory into which you want to clone to GIT_DIR = g2o_src '# GIT_URL: full URL to download GIT_URL=git://github.com/RainerKuemmerle/g2o.git '# GIT_PATCH: your (list of) patch file(s) to patch the downloaded software '# GIT_REVISION: - GIT_REVISION=67d5fa7 include $(shell rospack find mk)/git_checkout.mk

sophus: download mkdir -p build && cd build && \ cmake -DCMAKE_INSTALL_PREFIX=pwd/.. ../$(GIT_DIR) && \ make install

clean: rm -rf $(GIT_DIR) patched build include lib rospack_nosubdirs

But the build process for dvo_slam fails again :

[rosmake-1] Starting >>> g2o [ make ]
[rosmake-0] Finished <<< sophus [PASS] [ 0.35 seconds ]
[rosmake-0] Starting >>> dvo_core [ make ]
[rosmake-0] Finished <<< dvo_core [PASS] [ 0.54 seconds ]
[rosmake-0] Starting >>> dvo_ros [ make ]
[rosmake-0] Finished <<< dvo_ros [PASS] [ 1.37 seconds ]
[rosmake-0] Starting >>> dvo_benchmark [ make ]
[rosmake-0] Finished <<< dvo_benchmark [PASS] [ 0.51 seconds ]
[rosmake-1] Finished <<< g2o [PASS] [ 2.87 seconds ]
[rosmake-1] Starting >>> dvo_slam [ make ]
[ rosmake ] Last 40 lineso_slam: 12.0 sec ] [ 1 Active 42/43 Complete ] {------------------------------------------------------------------------------- /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp:356:59: error: expected initializer before ‘r’ /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp:358:8: error: ‘r’ was not declared in this scope /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp:358:42: error: request for member ‘end’ in ‘((dvoslam::internal::KeyframeGraphImpl)this)->dvo_slam::internal::KeyframeGraphImpl::constraint_trackingresults’, which is of non-class type ‘int’ /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp: In member function ‘int dvo_slam::internal::KeyframeGraphImpl::insertNewKeyframeConstraints(const ConstraintProposalVector&)’: /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp:610:53: error: ‘struct dvo_slam::constraints::ConstraintProposal’ has no member named ‘TrackingResult’ /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp: In member function ‘void dvo_slam::internal::KeyframeGraphImpl::insertConstraint(const KeyframePtr&, const KeyframePtr&, const int&)’: /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp:626:41: error: request for member ‘Transformation’ in ‘result’, which is of non-class type ‘const int’ /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp:628:30: error: request for member ‘Information’ in ‘result’, which is of non-class type ‘const int’ /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp:633:41: error: invalid types ‘int[int]’ for array subscript /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp: In member function ‘dvo_slam::KeyframePtr dvo_slam::internal::KeyframeGraphImpl::insertNewKeyframe(const Ptr&)’: /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp:753:78: error: no matching function for call to ‘dvo_slam::LocalMap::setKeyframePose(Eigen::Affine3d)’ /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp:753:78: note: candidate is: /root/ros_ws/package_dir/dvo_slam/dvo_slam/include/dvo_slam/local_map.h:52:8: note: void dvo_slam::LocalMap::setKeyframePose(const int&) /root/ros_ws/package_dir/dvo_slam/dvo_slam/include/dvo_slam/local_map.h:52:8: note: no known conversion for argument 1 from ‘Eigen::Affine3d {aka Eigen::Transform<double, 3, 2>}’ to ‘const int&’ /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp: In member function ‘void dvo_slam::internal::KeyframeGraphImpl::configureValidationTracking(const dvo::DenseTracker::Config&)’: /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp:827:29: error: ‘struct dvo::DenseTracker::Config’ has no member named ‘IntensityDerivativeThreshold’ /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp:827:64: error: ‘const struct dvo::DenseTracker::Config’ has no member named ‘IntensityDerivativeThreshold’ /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp:828:29: error: ‘struct dvo::DenseTracker::Config’ has no member named ‘DepthDerivativeThreshold’ /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp:828:60: error: ‘const struct dvo::DenseTracker::Config’ has no member named ‘DepthDerivativeThreshold’ /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp:836:29: error: ‘struct dvo::DenseTracker::Config’ has no member named ‘IntensityDerivativeThreshold’ /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp:836:64: error: ‘const struct dvo::DenseTracker::Config’ has no member named ‘IntensityDerivativeThreshold’ /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp:837:29: error: ‘struct dvo::DenseTracker::Config’ has no member named ‘DepthDerivativeThreshold’ /root/ros_ws/package_dir/dvo_slam/dvo_slam/src/keyframe_graph.cpp:837:60: error: ‘const struct dvo::DenseTracker::Config’ has no member named ‘DepthDerivativeThreshold’ /root/ros_ws/package_dir/dvo/dvo_core/include/dvo/core/datatypes.h: At global scope: /root/ros_ws/package_dir/dvo/dvo_core/include/dvo/core/datatypes.h:32:28: warning: ‘dvo::core::Invalid’ defined but not used [-Wunused-variable] /root/ros_ws/package_dir/dvo/dvocore/include/dvo/core/datatypes.h:35:24: warning: ‘dvo::core::InvalidDepth’ defined but not used [-Wunused-variable] make[3]: ** [CMakeFiles/dvo_slam.dir/src/keyframe_tracker.o] Error 1 make[3]: * Waiting for unfinished jobs.... /root/ros_ws/package_dir/dvo_slam/dvo_slam/include/dvo_slam/keyframe.h: In member function ‘ros::Time dvo_slam::Keyframe::timestamp() const’: /root/ros_ws/package_dir/dvo_slam/dvo_slam/include/dvo_slam/keyframe.h:51:3: warning: control reaches end of non-void function [-Wreturn-type] /root/ros_ws/package_dir/dvo/dvo_core/include/dvo/core/datatypes.h: At global scope: /root/ros_ws/package_dir/dvo/dvo_core/include/dvo/core/datatypes.h:32:28: warning: ‘dvo::core::Invalid’ defined but not used [-Wunused-variable] /root/ros_ws/package_dir/dvo/dvo_core/include/dvo/core/datatypes.h:35:24: warning: ‘dvo::core::InvalidDepth’ defined but not used [-Wunused-variable] make[3]: * [CMakeFiles/dvo_slam.dir/src/keyframe_graph.o] Error 1 make[3]: Leaving directory /root/ros_ws/package_dir/dvo_slam/dvo_slam/build' make[2]: *** [CMakeFiles/dvo_slam.dir/all] Error 2 make[2]: Leaving directory/root/ros_ws/package_dir/dvo_slam/dvo_slam/build' make[1]: *\ [all] Error 2 make[1]: Leaving directory `/root/ros_ws/package_dir/dvo_slam/dvo_slam/build' -------------------------------------------------------------------------------} [ rosmake ] Output from build of package dvo_slam written to: [ rosmake ] /root/.ros/rosmake/rosmake_output-20140924-161059/dvo_slam/build_output.log [rosmake-1] Finished <<< dvo_slam [FAIL] [ 12.01 seconds ]
[ rosmake ] Halting due to failure in package dvo_slam. [ rosmake ] Waiting for other threads to complete. [ rosmake ] Results:
[ rosmake ] Built 43 packages with 1 failures.
[ rosmake ] Summary output to directory
[ rosmake ] /root/.ros/rosmake/rosmake_output-20140924-161059

Could you give me some hints to fix it?

Thanks~

Milton

lynnsky commented 9 years ago

when i run, rosrun dvo_ros camera_tracker Start dynamic_reconfigure GUI In /camera/driver enable depth_registration on In /camera_tracker enable reconstruction, use_weighting, run_dense_tracking, and use_dense_tracking_estimate Start dynamic_reconfigure GUI

it get wrong [ WARN] [1416222358.860807756]: RGB image size has changed, resetting tracker! Segmentation fault (core dumped) how to solved it