TouchDeeper/VIW-Fusion

a strange bug

Closed this issue · 1 comments

Great work!!!

But when I run your project, whether I use a public dataset or my own dataset, it always prints “wait for wheel …”, it seems that wheelVelBuf is empty. But the topic name is correct and it does have wheel data in that topic.

The strange thing is that sometimes it doesn’t print “wait for wheel …” and can work. That’s really confused me.

My work environment is a virtual machine and ubuntu18.04.

Looking forward to your reply!

Thanks!

w@w-vm:~/Projects/viw_fusion_ws$ rosrun vins vins_node /home/w/Projects/viw_fusion_ws/src/VIW-Fusion/config/robot/mono_imu_config.yaml
[ INFO] [1718359519.053612103]: init begins
config_file: /home/w/Projects/viw_fusion_ws/src/VIW-Fusion/config/robot/mono_imu_config.yaml
USE_IMU: 1
USE_WHEEL: 1
INITIAL_WITH_WHEEL: 1
USE_PLANE: 1
IMU_TOPIC: /robot/imu
WHEEL_TOPIC: /robot/odom
[ WARN] [1718359519.056513415]: fix extrinsic param
[ WARN] [1718359519.057242645]: fix intrinsic param
result path /home/w/Projects/viw_fusion_ws/src/VIW-Fusion/output/robot/vio.csv
groundtruth path /home/w/Projects/viw_fusion_ws/src/VIW-Fusion/output/robot/groundtruth.csv
[ WARN] [1718359519.057319299]: fix extrinsic param
camera number 1
[ INFO] [1718359519.057357816]: Unsynchronized sensors, online estimate time offset, initial td: 0
[ INFO] [1718359519.057385537]: Synchronized sensors, fix time offset: 0
[ INFO] [1718359519.057402633]: ROW: 480 COL: 640
exitrinsic cam 0
0 0 1
-1 0 0
0 -1 0
0.23777 -0.0667 -0.00535
exitrinsic wheel
1 0 0
0 1 0
0 0 1
0.07494 -0.04795 0.06335
initrinsic wheel
1 1 1
set g 0 0 9.8015
[ INFO] [1718359519.057529519]: reading paramerter of camera /home/w/Projects/viw_fusion_ws/src/VIW-Fusion/config/robot/cam.yaml
MULTIPLE_THREAD is 1
[ WARN] [1718359519.057699677]: waiting for image and imu...
wait for wheel ...
wait for wheel ...
wait for wheel ...
wait for wheel ...
wait for wheel ...
wait for wheel ...
wait for wheel ...
wait for wheel ...
wait for wheel ...
wait for wheel ...
wait for wheel ...
wait for wheel ...
wait for wheel ...
wait for wheel ...

@TheCuriousJoe I'm sorry for my late reply.

I'm currently unsure of the issue, but it might be due to an abnormal value of td_wheel, which is preventing the acquisition of wheel speed information for this period. You can add some log information to help identify the problem. For example, when you reach the printf("wait for wheel ... \n"); line, you could further print out the specific query timestamp feature.first + td - td_wheel, as well as the timestamps of the data in the wheelbuf buffer, to compare and see if they are normal.