vins-mono-self-improved- icon indicating copy to clipboard operation
vins-mono-self-improved- copied to clipboard

process has died

Open SeungRyeol opened this issue 2 years ago • 7 comments

Hi, I'm enjoying your improved code.

However, when the program runs after the build, the process dies as shown below. How can I solve this problem?

[ INFO] [1659085271.725630474]: Extrinsic_T : 
-0.0216401  -0.064677 0.00981073
[ INFO] [1659085271.725641685]: Synchronized sensors, fix time offset: 0
[ WARN] [1659085271.725654950]: waiting for image and imu...
vocabulary_file/home/shin/catkin_ws/src/SFO/pose_graph/../support_files/brief_k10L6.bin
loop start load vocabulary
terminate called after throwing an instance of 'std::length_error'
  what():  vector::reserve
[pose_graph-3] process has died [pid 117815, exit code -6, cmd /home/shin/catkin_ws/devel/lib/pose_graph/pose_graph __name:=pose_graph __log:=/home/shin/.ros/log/a4131a60-0f1b-11ed-b695-596d9c8b53ec/pose_graph-3.log].
log file: /home/shin/.ros/log/a4131a60-0f1b-11ed-b695-596d9c8b53ec/pose_graph-3*.log
[ INFO] [1659085273.316743877]: Not enough features or parallax; Move device around
[ INFO] [1659085273.516627063]: Not enough features or parallax; Move device around
[ INFO] [1659085273.726155086]: Not enough features or parallax; Move device around
[ INFO] [1659085273.824986472]: Not enough features or parallax; Move device around
[vins_estimator-2] process has died [pid 117814, exit code -11, cmd /home/shin/catkin_ws/devel/lib/vins_estimator/vins_estimator __name:=vins_estimator __log:=/home/shin/.ros/log/a4131a60-0f1b-11ed-b695-596d9c8b53ec/vins_estimator-2.log].
log file: /home/shin/.ros/log/a4131a60-0f1b-11ed-b695-596d9c8b53ec/vins_estimator-2*.log

SeungRyeol avatar Jul 29 '22 09:07 SeungRyeol

It seems that you forgot the brief_k10L6.bin and relative files.

tyuownu avatar Aug 10 '22 12:08 tyuownu

@tyuownu Thank you for your reply.

The above problem was solved through brief_k10L6.bin, but the process was completely died.

SUMMARY
========

PARAMETERS
 * /feature_tracker/config_file: /home/shin/catkin...
 * /feature_tracker/vins_folder: /home/shin/catkin...
 * /pose_graph/config_file: /home/shin/catkin...
 * /pose_graph/skip_cnt: 0
 * /pose_graph/skip_dis: 0.0
 * /pose_graph/visualization_shift_x: 0
 * /pose_graph/visualization_shift_y: 0
 * /rosdistro: noetic
 * /rosversion: 1.15.14
 * /vins_estimator/config_file: /home/shin/catkin...
 * /vins_estimator/vins_folder: /home/shin/catkin...

NODES
  /
    feature_tracker (feature_tracker/feature_tracker)
    pose_graph (pose_graph/pose_graph)
    vins_estimator (vins_estimator/vins_estimator)

ROS_MASTER_URI=http://localhost:11311

process[feature_tracker-1]: started with pid [28176]
process[vins_estimator-2]: started with pid [28177]
process[pose_graph-3]: started with pid [28178]
[ INFO] [1660178153.237635994]: init begins
[ INFO] [1660178153.242971221]: Loaded config_file: /home/shin/catkin_ws/src/SFO/vins_estimator/config/euroc.yaml
result path /home/shin/output/vins_result_no_loop.csv
[ INFO] [1660178153.243575553]: ROW: 480.000000 COL: 752.000000 
[ WARN] [1660178153.243590561]:  fix extrinsic param 
[ INFO] [1660178153.243641847]: Extrinsic_R : 
 0.0148655  -0.999881  0.0041403
  0.999557  0.0149672  0.0257155
-0.0257744 0.00375619   0.999661
[ INFO] [1660178153.243656024]: Extrinsic_T : 
-0.0216401  -0.064677 0.00981073
[ INFO] [1660178153.243665552]: Synchronized sensors, fix time offset: 0
[ WARN] [1660178153.243700227]: waiting for image and imu...
vocabulary_file/home/shin/catkin_ws/src/SFO/pose_graph/../support_files/brief_k10L6.bin
loop start load vocabulary
BRIEF_PATTERN_FILE/home/shin/catkin_ws/src/SFO/pose_graph/../support_files/brief_pattern.yml
no previous pose graph
[ INFO] [1660178156.760655434]: Not enough features or parallax; Move device around
[ INFO] [1660178156.960693932]: Not enough features or parallax; Move device around
[ INFO] [1660178157.161300895]: Not enough features or parallax; Move device around
[ INFO] [1660178157.260894113]: Not enough features or parallax; Move device around
[ INFO] [1660178157.460601122]: Not enough features or parallax; Move device around
[ INFO] [1660178157.668163386]: Not enough features or parallax; Move device around
[ INFO] [1660178157.760715518]: Not enough features or parallax; Move device around
[ INFO] [1660178157.968424685]: Not enough features or parallax; Move device around
[ INFO] [1660178158.170915111]: Not enough features or parallax; Move device around
[ INFO] [1660178158.269462671]: Not enough features or parallax; Move device around
[vins_estimator-2] process has died [pid 28177, exit code -11, cmd /home/shin/catkin_ws/devel/lib/vins_estimator/vins_estimator __name:=vins_estimator __log:=/home/shin/.ros/log/9d863560-190c-11ed-971c-496fbc8124e7/vins_estimator-2.log].
log file: /home/shin/.ros/log/9d863560-190c-11ed-971c-496fbc8124e7/vins_estimator-2*.log

How can I solve this problem?

SeungRyeol avatar Aug 11 '22 00:08 SeungRyeol

I cannot see any useful information from the log, maybe you can try the origin VINS-Mono code to find something helpful.

tyuownu avatar Aug 12 '22 04:08 tyuownu

hi, reply for above:

  1. yes, I did not upload brief_k10L6.bin because it is so big , please refer to official vins-mono, I have mentioned it in readme.md like "(7) 注意,回环检测的字典在原vins-mono的support-file里,因为超大了我没有上传,所以要想实现回环检测的正常功能,请把support-file复制到目录中。"
  2. This work only reorganized the code of vins-mono, no algorithm is changed, so as for "Move device around", I think it is the problem of vins initialization. If vins wants to be well initialized, enough IMU movement is required or it will fail scale recover. And in initialization, it is better to translate than rotate.
  3. Plus, I think you are running your own data, I think it will help a lot to double check your extern param between cam and IMU and the noise of IMU, instead of using default param.

iwander-all avatar Aug 13 '22 06:08 iwander-all

@iwander-all Thank you for your comment. Your improved code is nice. I used EuRoC dataset for the original code and your code Did you check the code's behavior by any chance?

SeungRyeol avatar Aug 13 '22 13:08 SeungRyeol

I have tested the code of course, but I did not test every dataset. The log "Not enough features or parallax; Move device around" occurs in: Estimator::initial()->Initial::initialStructure()->relativePose(). Because your log did not show very detailed information, I suggest to add more logs in the code to see where it fails then it is more convenient to compare with original vins-mono

iwander-all avatar Aug 15 '22 02:08 iwander-all

Thank you for your kind answer. I tried debugging without modifying the code. Segmentation fault occurs in the highlighted 169th line in initial.cpp .

image

I'll study it a little bit more.

SeungRyeol avatar Aug 15 '22 05:08 SeungRyeol