Kimera-VIO
Kimera-VIO copied to clipboard
Kimera crashes whenever a loop is detected.
Description:
Install Kimera on ubuntu 20.04 with the recommended instructions. Kimera VIO works fine. However if you select use_lcd, the software crashes. I have also tested on a virtual machine running ubuntu 18.04, same problem.
Command:
# roslaunch kimera_vio_ros_euroc.launch from kimera_vio_ros repo, with gdb launch prefix
<node name="kimera_vio_ros_node" pkg="kimera_vio_ros" type="kimera_vio_ros_node"
output="screen" ns="kimera_vio_ros"
args="--use_lcd=$(arg use_lcd)
--vocabulary_path=$(arg path_to_vocab)
--flagfile=$(arg params_folder)/flags/Mesher.flags
--flagfile=$(arg params_folder)/flags/VioBackend.flags
--flagfile=$(arg params_folder)/flags/RegularVioBackend.flags
--flagfile=$(arg params_folder)/flags/Visualizer3D.flags
--logtostderr=1
--colorlogtostderr=1
--log_prefix=1
--v=$(arg verbosity)
--log_output=$(arg log_output)
--log_euroc_gt_data=$(arg log_output)
--output_path=$(arg log_output_path)
--viz_type=$(arg viz_type)
--visualize=$(arg visualize)"
launch-prefix="gdb -ex run --args">
Console output:
# GBD backtrace
Thread 24 "kimera_vio_ros_" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff967fc700 (LWP 161936)]
__GI___libc_free (mem=0x25) at malloc.c:3102
3102 malloc.c: No such file or directory.
(gdb) bt
#0 __GI___libc_free (mem=0x25) at malloc.c:3102
#1 0x00007ffff345f0ea in void Eigen::internal::lmpar2<double>(Eigen::ColPivHouseholderQR<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::Matrix<double, -1, 1, 0, -1, 1> const&, Eigen::Matrix<double, -1, 1, 0, -1, 1> const&, double, double&, Eigen::Matrix<double, -1, 1, 0, -1, 1>&) () at /home/tmn/kimera_ws/devel/lib/libkimera_vio.so
#2 0x00007ffff34cdb2c in Eigen::LevenbergMarquardt<Eigen::NumericalDiff<opengv::relative_pose::modules::fivept_nister::PollishCoefficientsFunctor, (Eigen::NumericalDiffMode)0>, double>::minimizeOneStep(Eigen::Matrix<double, -1, 1, 0, -1, 1>&) () at /home/tmn/kimera_ws/devel/lib/libkimera_vio.so
#3 0x00007ffff34cb7d3 in opengv::relative_pose::modules::fivept_nister::pollishCoefficients(Eigen::Matrix<double, 10, 20, 0, 10, 20> const&, double&, double&, double&) ()
at /home/tmn/kimera_ws/devel/lib/libkimera_vio.so
#4 0x00007ffff347c6a2 in opengv::relative_pose::modules::fivept_nister_main(Eigen::Matrix<double, 9, 4, 0, 9, 4> const&, std::vector<Eigen::Matrix<double, 3, 3, 0, 3, 3>, Eigen::aligned_allocator<Eigen::Matrix<double, 3, 3, 0, 3, 3> > >&) () at /home/tmn/kimera_ws/devel/lib/libkimera_vio.so
#5 0x00007ffff344fe06 in opengv::relative_pose::fivept_nister(opengv::relative_pose::RelativeAdapterBase const&, opengv::Indices const&) () at /home/tmn/kimera_ws/devel/lib/libkimera_vio.so
#6 0x00007ffff3450101 in opengv::relative_pose::fivept_nister(opengv::relative_pose::RelativeAdapterBase const&, std::vector<int, std::allocator<int> > const&) () at /home/tmn/kimera_ws/devel/lib/libkimera_vio.so
#7 0x00007ffff343a0ac in opengv::sac_problems::relative_pose::CentralRelativePoseSacProblem::computeModelCoefficients(std::vector<int, std::allocator<int> > const&, Eigen::Matrix<double, 3, 4, 0, 3, 4>&) const ()
at /home/tmn/kimera_ws/devel/lib/libkimera_vio.so
#8 0x00007ffff326cb0e in opengv::sac::Ransac<opengv::sac_problems::relative_pose::CentralRelativePoseSacProblem>::computeModel(int) () at /home/tmn/kimera_ws/devel/lib/libkimera_vio.so
#9 0x00007ffff33ced4c in VIO::LoopClosureDetector::geometricVerificationNister(unsigned long const&, unsigned long const&, gtsam::Pose3*, std::vector<unsigned long, std::allocator<unsigned long> >*, std::vector<unsigned long, std::allocator<unsigned long> >*) () at /home/tmn/kimera_ws/devel/lib/libkimera_vio.so
#10 0x00007ffff33cf345 in VIO::LoopClosureDetector::geometricVerificationCheck(unsigned long const&, unsigned long const&, gtsam::Pose3*, std::vector<unsigned long, std::allocator<unsigned long> >*, std::vector<unsigned long, std::allocator<unsigned long> >*) () at /home/tmn/kimera_ws/devel/lib/libkimera_vio.so
Console output:
# Without GBD
W0411 20:28:49.462188 162651 StereoMatcher.cpp:130] sparseStereoMatching: StereoFrame is already rectified!
W0411 20:28:49.462203 162651 StereoCamera.cpp:263] Rectifying already rectified stereo frame ...
W0411 20:28:49.469087 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:49.519409 162655 DataProviderModule.cpp:68] Waiting for IMU data...
I0411 20:28:49.564196 162499 KimeraVioRos.cpp:139] Statistics
----------- # Log Hz {avg +- std } [min,max]
Display [ms] 189 9.98260 {0.121693 +- 0.00000} [0,23]
Lcd [ms] 95 5.01784 {41.4000 +- 3.12301} [37,62]
Mesher [ms] 95 5.02646 {6.61053 +- 2.58183} [2,16]
Stereo Data Provider [ms] 0
VioBackend [ms] 95 5.02843 {8.90526 +- 3.78989} [0,17]
VioFrontend Frame Rate [ms] 284 15.0656 {1.76408 +- 1.15137} [1,8]
VioFrontend Keyframe Rate [ms] 94 5.00709 {34.4894 +- 13.8547} [22,65]
VioFrontend [ms] 379 19.9890 {10.0026 +- 16.2115} [1,65]
Visualizer [ms] 95 5.01770 {0.0210526 +- 0.144321} [0,1]
backend_input_queue Size [#] 95 3.95213 {1.00000 +- 0.00000} [1,1]
data_provider_left_frame_queue Size [#] 380 15.7613 {1.00000 +- 0.00000} [1,1]
data_provider_right_frame_queue Size [#] 380 15.7613 {1.00263 +- 0.00000} [1,2]
display_input_queue Size [#] 189 7.84623 {1.00000 +- 0.00000} [1,1]
frontend_input_queue Size [#] 379 15.7174 {1.00000 +- 0.00000} [1,1]
lcd_backend_queue Size [#] 95 5.02447 {1.00000 +- 0.00000} [1,1]
lcd_frontend_queue Size [#] 379 19.9734 {2.72296 +- 1.21089} [1,5]
mesher_backend Size [#] 95 3.95103 {1.00000 +- 0.00000} [1,1]
mesher_frontend Size [#] 379 15.7182 {2.72296 +- 1.21089} [1,5]
visualizer_backend_queue Size [#] 95 5.02790 {1.00000 +- 0.00000} [1,1]
visualizer_frontend_queue Size [#] 379 19.9850 {2.72296 +- 1.21089} [1,5]
visualizer_lcd_queue Size [#] 95 5.01778 {1.00000 +- 0.00000} [1,1]
visualizer_mesher_queue Size [#] 95 5.02640 {1.00000 +- 0.00000} [1,1]
W0411 20:28:49.568740 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:49.618680 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:49.635601 162648 StereoMatcher.cpp:130] sparseStereoMatching: StereoFrame is already rectified!
W0411 20:28:49.635615 162648 StereoCamera.cpp:263] Rectifying already rectified stereo frame ...
W0411 20:28:49.664433 162651 StereoMatcher.cpp:130] sparseStereoMatching: StereoFrame is already rectified!
W0411 20:28:49.664449 162651 StereoCamera.cpp:263] Rectifying already rectified stereo frame ...
W0411 20:28:49.668896 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:49.720077 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:49.769026 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:49.818542 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:49.850425 162648 StereoMatcher.cpp:130] sparseStereoMatching: StereoFrame is already rectified!
W0411 20:28:49.850450 162648 StereoCamera.cpp:263] Rectifying already rectified stereo frame ...
W0411 20:28:49.868350 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:49.880959 162651 StereoMatcher.cpp:130] sparseStereoMatching: StereoFrame is already rectified!
W0411 20:28:49.880975 162651 StereoCamera.cpp:263] Rectifying already rectified stereo frame ...
W0411 20:28:49.917809 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:49.967880 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:50.019332 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:50.039240 162648 StereoMatcher.cpp:130] sparseStereoMatching: StereoFrame is already rectified!
W0411 20:28:50.039255 162648 StereoCamera.cpp:263] Rectifying already rectified stereo frame ...
W0411 20:28:50.067591 162651 StereoMatcher.cpp:130] sparseStereoMatching: StereoFrame is already rectified!
W0411 20:28:50.067608 162651 StereoCamera.cpp:263] Rectifying already rectified stereo frame ...
W0411 20:28:50.068687 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:50.118539 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:50.164909 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:50.218595 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:50.237824 162648 StereoMatcher.cpp:130] sparseStereoMatching: StereoFrame is already rectified!
W0411 20:28:50.237839 162648 StereoCamera.cpp:263] Rectifying already rectified stereo frame ...
E0411 20:28:50.258699 162650 Mesher.cpp:1729] Delaunay Triangle out of image (size: x: 0, y: 0, height: 480, width 752
Triangle: x, y:
0, 2256
529.698, 442.679
659.564, 415.301
W0411 20:28:50.268348 162651 StereoMatcher.cpp:130] sparseStereoMatching: StereoFrame is already rectified!
W0411 20:28:50.268366 162651 StereoCamera.cpp:263] Rectifying already rectified stereo frame ...
W0411 20:28:50.269194 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:50.318542 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:50.368016 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:50.418123 162655 DataProviderModule.cpp:68] Waiting for IMU data...
W0411 20:28:50.438990 162648 StereoMatcher.cpp:130] sparseStereoMatching: StereoFrame is already rectified!
W0411 20:28:50.439006 162648 StereoCamera.cpp:263] Rectifying already rectified stereo frame ...
W0411 20:28:50.466760 162651 StereoMatcher.cpp:130] sparseStereoMatching: StereoFrame is already rectified!
W0411 20:28:50.466776 162651 StereoCamera.cpp:263] Rectifying already rectified stereo frame ...
W0411 20:28:50.467871 162655 DataProviderModule.cpp:68] Waiting for IMU data...
[kimera_vio_ros/kimera_vio_ros_node-2] process has died [pid 162499, exit code -11, cmd /home/tmn/kimera_ws/devel/lib/kimera_vio_ros/kimera_vio_ros_node --use_lcd=true --vocabulary_path=/home/tmn/kimera_ws/src/Kimera-VIO/vocabulary/ORBvoc.yml --flagfile=/home/tmn/kimera_ws/src/Kimera-VIO/params/Euroc/flags/Mesher.flags --flagfile=/home/tmn/kimera_ws/src/Kimera-VIO/params/Euroc/flags/VioBackend.flags --flagfile=/home/tmn/kimera_ws/src/Kimera-VIO/params/Euroc/flags/RegularVioBackend.flags --flagfile=/home/tmn/kimera_ws/src/Kimera-VIO/params/Euroc/flags/Visualizer3D.flags --logtostderr=1 --colorlogtostderr=1 --log_prefix=1 --v=0 --log_output=false --log_euroc_gt_data=false --output_path=/home/tmn/kimera_ws/src/Kimera-VIO-ROS/output_logs/ --viz_type=0 --visualize=true left_cam/image_raw:=/cam0/image_raw right_cam/image_raw:=/cam1/image_raw imu:=/imu0 left_cam/camera_info:=/cam0/camera_info right_cam/camera_info:=/cam1/camera_info reinit_flag:=reinit_flag reinit_pose:=reinit_pose odometry:=odometry resiliency:=resiliency imu_bias:=imu_bias optimized_trajectory:=optimized_trajectory pose_graph:=pose_graph mesh:=mesh frontend_stats:=frontend_stats debug_mesh_img/image_raw:=debug_mesh_img/image_raw feature_tracks/image_raw:=feature_tracks/image_raw time_horizon_pointcloud:=time_horizon_pointcloud __name:=kimera_vio_ros_node __log:=/home/tmn/.ros/log/bbbcdbb8-d86c-11ed-9a47-813417ced95d/kimera_vio_ros-kimera_vio_ros_node-2.log].
log file: /home/tmn/.ros/log/bbbcdbb8-d86c-11ed-9a47-813417ced95d/kimera_vio_ros-kimera_vio_ros_node-2*.log
Additional files: Please attach all the files needed to reproduce the error.
Please give also the following information:
- Kimera-Vio branch, tag or commit used: master
- GTSAM version used: 9902ccc0a4f62123e91f057babe3612a95c15c20 (tag: 4.2a8)
- OpenGV version used: 91f4b19c73450833a40e463ad3648aae80b3a7f3
- OpenCV version used: 4.2.0
- Operating system and version (e.g. Ubuntu 16.04 or Windows 10): ubuntu 20.04
- Did you change the source code? (yes / no): no,