rpng / MINS

An efficient and robust multisensor-aided inertial navigation system with online calibration that is capable of fusing IMU, camera, LiDAR, GPS/GNSS, and wheel sensors. Use cases: VINS/VIO, GPS-INS, LINS/LIO, multi-sensor fusion for localization and mapping (SLAM). This repository also provides multi-sensor simulation and data.
GNU General Public License v3.0
427 stars 74 forks source link

process[mins simulation0-1]: started with pid [7471] #13

Closed ZJJ2022415 closed 9 months ago

ZJJ2022415 commented 9 months ago

Excuse me, I am running "roslaunch mins simulation.launch cam_enabled:=true lidar_enabled:=true". What is the cause of the error? How to fix it?

6676fd3ff17ca00e003eacc1acc1215

And I'm using "roslaunch mins serial.launch config:=kaist/kaist_LC path_gt:=urban30.txt path_bag:=urban30.bag "When running rosbag with your own kaist dataset, can the bag contain only the following topics? What are the topics of your bag?

a2d162de8c8437e781ab1e8ca21869d

Thank you very much.

WoosikLee2510 commented 9 months ago

Hi @ZJJ2022415 . For the simulation, the process died without any messages. Can you try running it with sys_verbosity=true and share what you get?

In order to run MINS with kaist lc config, you need have rosbag that contains camera and lidar messages. It looks like your bag doesn't have it. I am not sure where you got the bag but I recommend downloading the sensor data from the original website: https://sites.google.com/view/complex-urban-dataset/download-lidar-stereo

You can convert the sensor data to bag using packages, e.g., https://github.com/tsyxyz/kaist2bag

ZJJ2022415 commented 9 months ago

Thank you. I'll recreate the bag. After running' roslaunch mins simulation.launch sys_verbosity:=true' I get the following result:

(base) zjj@zjj:~/zjj/MINS01_ws$ roslaunch mins simulation.launch sys_verbosity:=true ... logging to /home/zjj/.ros/log/8f50d230-85bb-11ee-9050-89c65a8969a2/roslaunch-zjj-8393.log Checking log directory for disk usage. This may take a while. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB. RLException: Invalid tag: Invalid tag: invalid literal for int() with base 10: 'true'. Param xml is . Node xml is

    <param name="config_path" type="str" value="$(arg config_path)"/>
    <param name="sys_verbosity" type="int" value="$(arg sys_verbosity)"/>
    <param name="sys_exp_id" type="int" value="$(arg sys_exp_id)"/>
    <param name="sys_save_state" type="bool" value="$(arg sys_save_state)"/>
    <param name="sys_path_state" type="str" value="$(arg sys_path_state)"/>
    <param name="sys_save_timing" type="bool" value="$(arg sys_save_timing)"/>
    <param name="sys_path_timing" type="str" value="$(arg sys_path_timing)"/>
    <param name="sys_save_trajectory" type="bool" value="$(arg sys_save_trajectory)"/>
    <param name="sys_path_trajectory" type="str" value="$(arg sys_path_trajectory)"/>
    <param name="sim_BSpline_path" type="str" value="$(arg sim_BSpline_path)"/>
    <param name="sim_planes_path" type="str" value="$(arg sim_planes_path)"/>
    <param name="sim_seed" type="int" value="$(arg sim_seed)"/>
    <param name="sim_n_loop" type="int" value="$(arg sim_n_loop)"/>
    <param name="sim_const_planar" type="bool" value="$(arg sim_const_planar)"/>
    <param name="sim_const_holonomic" type="bool" value="$(arg sim_const_holonomic)"/>
    <param name="sim_do_perturb" type="bool" value="$(arg sim_do_perturb)"/>
    <param name="sim_remove_noise" type="bool" value="$(arg sim_remove_noise)"/>
    <param name="sim_freq_imu" type="double" value="$(arg sim_freq_imu)"/>
    <param name="sim_freq_cam" type="double" value="$(arg sim_freq_cam)"/>
    <param name="sim_freq_gps" type="double" value="$(arg sim_freq_gps)"/>
    <param name="sim_freq_wheel" type="double" value="$(arg sim_freq_wheel)"/>
    <param name="sim_freq_vicon" type="double" value="$(arg sim_freq_vicon)"/>
    <param name="sim_freq_lidar" type="double" value="$(arg sim_freq_lidar)"/>
    <param name="init_use_gt_gnss" type="bool" value="$(arg init_use_gt_gnss)"/>
    <param name="init_use_gt_lidar" type="bool" value="$(arg init_use_gt_lidar)"/>
    <!--Est-->
    <param name="est_window_size" type="double" value="$(arg est_window_size)"/>
    <param name="est_clone_freq" type="int" value="$(arg est_clone_freq)"/>
    <param name="est_intr_order" type="int" value="$(arg est_intr_order)"/>
    <param name="est_dynamic_cloning" type="bool" value="$(arg est_dynamic_cloning)"/>
    <param name="est_use_imu_res" type="bool" value="$(arg est_use_imu_res)"/>
    <param name="est_use_imu_cov" type="bool" value="$(arg est_use_imu_cov)"/>
    <param name="est_use_pol_cov" type="bool" value="$(arg est_use_pol_cov)"/>
    <param name="est_intr_error_mlt" type="double" value="$(arg est_intr_error_mlt)"/>
    <param name="est_intr_error_ori_thr" type="double" value="$(arg est_intr_error_ori_thr)"/>
    <param name="est_intr_error_pos_thr" type="double" value="$(arg est_intr_error_pos_thr)"/>
    <param name="est_intr_error_thr_mlt" type="double" value="$(arg est_intr_error_thr_mlt)"/>
    <!--Cam-->
    <param name="cam_enabled" type="bool" value="$(arg cam_enabled)"/>
    <param name="cam_use_stereo" type="bool" value="$(arg cam_use_stereo)"/>
    <param name="cam_max_n" type="int" value="$(arg cam_max_n)"/>
    <param name="cam_max_slam" type="int" value="$(arg cam_max_slam)"/>
    <param name="cam_do_calib_ext" type="bool" value="$(arg cam_do_calib_ext)"/>
    <param name="cam_do_calib_int" type="bool" value="$(arg cam_do_calib_int)"/>
    <param name="cam_do_calib_dt" type="bool" value="$(arg cam_do_calib_dt)"/>
    <param name="cam_chi2_mult" type="double" value="$(arg cam_chi2_mult)"/>
    <param name="cam_init_cov_dt" type="double" value="$(arg cam_init_cov_dt)"/>
    <param name="cam_init_cov_ex_o" type="double" value="$(arg cam_init_cov_ex_o)"/>
    <param name="cam_init_cov_ex_p" type="double" value="$(arg cam_init_cov_ex_p)"/>
    <param name="cam_init_cov_in_k" type="double" value="$(arg cam_init_cov_in_k)"/>
    <param name="cam_init_cov_in_c" type="double" value="$(arg cam_init_cov_in_c)"/>
    <param name="cam_init_cov_in_r" type="double" value="$(arg cam_init_cov_in_r)"/>
    <!--GPS-->
    <param name="gps_enabled" type="bool" value="$(arg gps_enabled)"/>
    <param name="gps_max_n" type="int" value="$(arg gps_max_n)"/>
    <param name="gps_chi2_mult" type="double" value="$(arg gps_chi2_mult)"/>
    <param name="gps_do_calib_ext" type="bool" value="$(arg gps_do_calib_ext)"/>
    <param name="gps_do_calib_dt" type="bool" value="$(arg gps_do_calib_dt)"/>
    <param name="gps_init_cov_dt" type="double" value="$(arg gps_init_cov_dt)"/>
    <param name="gps_init_cov_ex" type="double" value="$(arg gps_init_cov_ex)"/>
    <param name="gps_noise" type="double" value="$(arg gps_noise)"/>
    <!--Wheel-->
    <param name="wheel_enabled" type="bool" value="$(arg wheel_enabled)"/>
    <param name="wheel_do_calib_ext" type="bool" value="$(arg wheel_do_calib_ext)"/>
    <param name="wheel_do_calib_int" type="bool" value="$(arg wheel_do_calib_int)"/>
    <param name="wheel_do_calib_dt" type="bool" value="$(arg wheel_do_calib_dt)"/>
    <param name="wheel_chi2_mult" type="double" value="$(arg wheel_chi2_mult)"/>
    <param name="wheel_init_cov_dt" type="double" value="$(arg wheel_init_cov_dt)"/>
    <param name="wheel_init_cov_ex_o" type="double" value="$(arg wheel_init_cov_ex_o)"/>
    <param name="wheel_init_cov_ex_p" type="double" value="$(arg wheel_init_cov_ex_p)"/>
    <param name="wheel_init_cov_in_b" type="double" value="$(arg wheel_init_cov_in_b)"/>
    <param name="wheel_init_cov_in_r" type="double" value="$(arg wheel_init_cov_in_r)"/>
    <!--LiDAR-->
    <param name="lidar_enabled" type="bool" value="$(arg lidar_enabled)"/>
    <param name="lidar_max_n" type="int" value="$(arg lidar_max_n)"/>
    <param name="lidar_raw_downsample_size" type="double" value="$(arg lidar_raw_downsample_size)"/>
    <param name="lidar_map_downsample_size" type="double" value="$(arg lidar_map_downsample_size)"/>
    <param name="lidar_do_calib_ext" type="bool" value="$(arg lidar_do_calib_ext)"/>
    <param name="lidar_do_calib_dt" type="bool" value="$(arg lidar_do_calib_dt)"/>
    <param name="lidar_chi2_mult" type="double" value="$(arg lidar_chi2_mult)"/>
    <param name="lidar_init_cov_dt" type="double" value="$(arg lidar_init_cov_dt)"/>
    <param name="lidar_init_cov_ex_o" type="double" value="$(arg lidar_init_cov_ex_o)"/>
    <param name="lidar_init_cov_ex_p" type="double" value="$(arg lidar_init_cov_ex_p)"/>
    <!--VICON-->
    <param name="vicon_enabled" type="bool" value="$(arg vicon_enabled)"/>
    <param name="vicon_max_n" type="int" value="$(arg vicon_max_n)"/>
    <param name="vicon_do_calib_ext" type="bool" value="$(arg vicon_do_calib_ext)"/>
    <param name="vicon_do_calib_dt" type="bool" value="$(arg vicon_do_calib_dt)"/>
    <!--IMU-->
    <param name="imu_accel_noise" type="double" value="$(arg imu_accel_noise)"/>
    <param name="imu_accel_bias" type="double" value="$(arg imu_accel_bias)"/>
    <param name="imu_gyro_noise" type="double" value="$(arg imu_gyro_noise)"/>
    <param name="imu_gyro_bias" type="double" value="$(arg imu_gyro_bias)"/>
</node>

The traceback for the exception was written to the log file

WoosikLee2510 commented 9 months ago

I am sorry, 'sys_verbosity=0'

ZJJ2022415 commented 9 months ago

Thanks. I get the following result:

(base) zjj@zjj:~/zjj/MINS01_ws$ roslaunch mins simulation.launch sys_verbosity:=0 ... logging to /home/zjj/.ros/log/2c73a7dc-86a1-11ee-a6d6-05eb00dc89b1/roslaunch-zjj-4242.log Checking log directory for disk usage. This may take a while. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://zjj:33409/

SUMMARY

CLEAR PARAMETERS

PARAMETERS

NODES / mins_simulation0 (mins/simulation)

auto-starting new master process[master]: started with pid [4263] ROS_MASTER_URI=http://localhost:11311

setting /run_id to 2c73a7dc-86a1-11ee-a6d6-05eb00dc89b1 process[rosout-1]: started with pid [4284] started core service [/rosout] process[mins_simulation0-2]: started with pid [4288] ================================================================================REQUIRED process [mins_simulation0-2] has died! process has died [pid 4288, exit code -11, cmd /home/zjj/zjj/MINS01_ws/devel_isolated/mins/lib/mins/simulation __name:=mins_simulation0 __log:=/home/zjj/.ros/log/2c73a7dc-86a1-11ee-a6d6-05eb00dc89b1/mins_simulation0-2.log]. log file: /home/zjj/.ros/log/2c73a7dc-86a1-11ee-a6d6-05eb00dc89b1/mins_simulation0-2*.log Initiating shutdown!

[mins_simulation0-2] killing on exit [rosout-1] killing on exit [master] killing on exit shutting down processing monitor... ... shutting down processing monitor complete done

WoosikLee2510 commented 9 months ago

Hmm.. there is nothing that comes out from the log - except that the mins/simulation node is initialized and died. Can you try checking where it actually dies? It usually should print out something.

ZJJ2022415 commented 9 months ago

I changed my computer and it worked successfully. What are the rostopics of your kaist dataset, because the dataset I merged seems to be a bit problematic.

WoosikLee2510 commented 9 months ago

The topics should be what I used in the config files:

/stereo/left/image_raw /stereo/right/image_raw /gps/fix /imu/data_raw /ns1/velodyne_points /ns2/velodyne_points /joint_states

which topic do you think is problematic?