MIT-SPARK / Kimera-VIO-ROS

ROS wrapper for Kimera-VIO
BSD 2-Clause "Simplified" License
371 stars 155 forks source link

kimera_vio_ros_node crashes with ROS Noetic #162

Open Xcrater opened 2 years ago

Xcrater commented 2 years ago

Command: roslaunch kimera_vio_ros kimera_vio_ros_euroc.launch Output:


SUMMARY
========

PARAMETERS
 * /gt_accel_bias: [-0.012492, 0.547...
 * /gt_gyro_bias: [-0.002229, 0.020...
 * /kimera_vio_ros/kimera_vio_ros_node/base_link_frame_id: base_link
 * /kimera_vio_ros/kimera_vio_ros_node/ground_truth_odometry_rosbag_topic: 
 * /kimera_vio_ros/kimera_vio_ros_node/imu_rosbag_topic: /imu0
 * /kimera_vio_ros/kimera_vio_ros_node/left_cam_frame_id: cam0
 * /kimera_vio_ros/kimera_vio_ros_node/left_cam_rosbag_topic: /cam0/image_raw
 * /kimera_vio_ros/kimera_vio_ros_node/log_gt_data: False
 * /kimera_vio_ros/kimera_vio_ros_node/map_frame_id: map
 * /kimera_vio_ros/kimera_vio_ros_node/mono_ransac_threshold: 30
 * /kimera_vio_ros/kimera_vio_ros_node/online_run: False
 * /kimera_vio_ros/kimera_vio_ros_node/params_folder_path: /home/bisgagx/ros...
 * /kimera_vio_ros/kimera_vio_ros_node/position_det_threshold: 0.3
 * /kimera_vio_ros/kimera_vio_ros_node/right_cam_frame_id: cam1
 * /kimera_vio_ros/kimera_vio_ros_node/right_cam_rosbag_topic: /cam1/image_raw
 * /kimera_vio_ros/kimera_vio_ros_node/rosbag_path: 
 * /kimera_vio_ros/kimera_vio_ros_node/stereo_ransac_threshold: 20
 * /kimera_vio_ros/kimera_vio_ros_node/use_lcd: False
 * /kimera_vio_ros/kimera_vio_ros_node/use_online_cam_params: False
 * /kimera_vio_ros/kimera_vio_ros_node/velocity_det_threshold: 0.1
 * /kimera_vio_ros/kimera_vio_ros_node/world_frame_id: world
 * /kimera_vio_ros/posegraph_viewer/frame_id: world
 * /rosdistro: noetic
 * /rosversion: 1.15.13
 * /use_sim_time: True

NODES
  /kimera_vio_ros/
    kimera_vio_ros_node (kimera_vio_ros/kimera_vio_ros_node)
    posegraph_viewer (pose_graph_tools/visualizer_node)

ROS_MASTER_URI=http://localhost:11311

process[kimera_vio_ros/kimera_vio_ros_node-1]: started with pid [65064]
process[kimera_vio_ros/posegraph_viewer-2]: started with pid [65065]
[ INFO] [1634128794.540464415]: Initializing pose graph visualizer
[kimera_vio_ros/kimera_vio_ros_node-1] process has died [pid 65064, exit code -11, cmd /home/bisgagx/ros_ws/devel/lib/kimera_vio_ros/kimera_vio_ros_node --use_lcd=false --vocabulary_path=/home/bisgagx/ros_ws/src/Kimera-VIO/vocabulary/ORBvoc.yml --flagfile=/home/bisgagx/ros_ws/src/Kimera-VIO/params/Euroc/flags/Mesher.flags --flagfile=/home/bisgagx/ros_ws/src/Kimera-VIO/params/Euroc/flags/VioBackend.flags --flagfile=/home/bisgagx/ros_ws/src/Kimera-VIO/params/Euroc/flags/RegularVioBackend.flags --flagfile=/home/bisgagx/ros_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/bisgagx/ros_ws/src/Kimera-VIO-ROS/output_logs/ --viz_type=0 --visualize=true 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/bisgagx/.ros/log/7a779dc8-2c1f-11ec-b997-4313c2e4b63a/kimera_vio_ros-kimera_vio_ros_node-1.log].
log file: /home/bisgagx/.ros/log/7a779dc8-2c1f-11ec-b997-4313c2e4b63a/kimera_vio_ros-kimera_vio_ros_node-1*.log

Environment: master branch GTSAM version used: OpenGV version used: OpenCV version used: 4.2 Operating system and version: Ubuntu 20.04, ROS Noetic Did you change the source code? (yes / no): no (changes in header files' directory when building)? But forced to use system Eigen while building GTSAM

Lurvelly commented 2 years ago

Hi, I am facing the same issue.

GTSAM with commit ee069286b447ff58b809423cc77c777a02abdfe5 OpenCV with version 3.4.9 OpenGV wit commit 91f4b19c73450833a40e463ad3648aae80b3a7f3

*process[rosout-1]: started with pid [77486] started core service [/rosout] process[kimera_vio_ros/kimera_vio_ros_node-2]: started with pid [77493] process[kimera_vio_ros/posegraph_viewer-3]: started with pid [77494] [ INFO] [1662452920.384730110]: Initializing pose graph visualizer [kimera_vio_ros/kimera_vio_ros_node-2] process has died [pid 77493, exit code -11, cmd /home/lurvelly/Kimera-VIO-ROS/devel/lib/kimera_vio_ros/kimera_vio_ros_node --use_lcd=false --vocabulary_path=/home/lurvelly/Kimera-VIO-ROS/src/Kimera-VIO/vocabulary/ORBvoc.yml --flagfile=/home/lurvelly/Kimera-VIO-ROS/src/Kimera-VIO/params/Euroc/flags/Mesher.flags --flagfile=/home/lurvelly/Kimera-VIO-ROS/src/Kimera-VIO/params/Euroc/flags/VioBackend.flags --flagfile=/home/lurvelly/Kimera-VIO-ROS/src/Kimera-VIO/params/Euroc/flags/RegularVioBackend.flags --flagfile=/home/lurvelly/Kimera-VIO-ROS/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/lurvelly/Kimera-VIO-ROS/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/lurvelly/.ros/log/e9037000-2dbd-11ed-99ef-ad25b61d8625/kimera_vio_ros-kimera_vio_ros_node-2.log]. log file: /home/lurvelly/.ros/log/e9037000-2dbd-11ed-99ef-ad25b61d8625/kimera_vio_ros-kimera_vio_ros_node-2.log**

I'm trying to debug this issue and found stack trace below:

F0906 09:45:04.248813 89585 KimeraVioRos.cpp:49] Check failed: nh_private_.getParam("params_folder_path", params_folder_path) *** Check failure stack trace: *** @ 0x7f88258bb1c3 google::LogMessage::Fail() @ 0x7f88258c025b google::LogMessage::SendToLog() @ 0x7f88258baebf google::LogMessage::Flush() @ 0x7f88258bb6ef google::LogMessageFatal::~LogMessageFatal() @ 0x7f8825c9dd7d VIO::KimeraVioRos::KimeraVioRos() @ 0x564431d81b16 main @ 0x7f8825093083 __libc_start_main @ 0x564431d8185e _start The code is CHECK(nh_private_.getParam("params_folder_path", params_folder_path));

It seems that the nhprivate.getParam() function will return false. Then I double checked the rosparam list

/kimera_vio_ros/kimera_vio_ros_node/base_link_frame_id /kimera_vio_ros/kimera_vio_ros_node/left_cam_frame_id /kimera_vio_ros/kimera_vio_ros_node/map_frame_id /kimera_vio_ros/kimera_vio_ros_node/mono_ransac_threshold /kimera_vio_ros/kimera_vio_ros_node/online_run /kimera_vio_ros/kimera_vio_ros_node/params_folder_path /kimera_vio_ros/kimera_vio_ros_node/position_det_threshold /kimera_vio_ros/kimera_vio_ros_node/right_cam_frame_id /kimera_vio_ros/kimera_vio_ros_node/stereo_ransac_threshold /kimera_vio_ros/kimera_vio_ros_node/use_lcd /kimera_vio_ros/kimera_vio_ros_node/use_online_cam_params /kimera_vio_ros/kimera_vio_ros_node/velocity_det_threshold /kimera_vio_ros/kimera_vio_ros_node/world_frame_id /kimera_vio_ros/posegraph_viewer/frame_id

So we should use "/kimera_vio_ros/kimera_vio_ros_node/params_folder_path" instead of "params_folder_path", isn't it?

Zhangenboo commented 3 months ago

Hello, I encountered the same issue as you. Do you have a solution?