Comments (17)
I have the same problem as you! do you slove the problem? @Lsmartworld
from vins-fusion.
VINS is requires accurate timing. IMU und camera frames need to be synchronized well - in the order of a millisecond or better, so hardware synchronization is essential. If your timestamps are off by even a single frame or have high jitter (for example because you're measuring them on the PC using ros::Time::now()) VINS will diverge quickly.
While the pipline tries to estimate a constant time offset between IMU and camera[s], this doesn't work too well and is more of a crutch than a real fix for wrong or bad synchronization.
from vins-fusion.
@iliis Thank you very much for your answers. before running stereo+imu, I used the kalibr program to do stereo calibration and imu-camera calibration for mynteye camera. The calibration results should look pretty good (as shown in the link) ). When running stero, it is more stable than imu+stereo. How can I achieve better synchronization?r is the problem with the hardware device I am using that the time synchronization is not done well?
report-imucam-mynteyemynt_imu_camera_calib_202006030038.pdf
report-cam-mynteye_camera_calib_202006030038.pdf
from vins-fusion.
@lishanggui Your calibration result is pretty good. You can try increasing your IMU params inside config file. Like the following
acc_n: 0.1
gyr_n: 0.01
acc_w: 0.001
gyr_w: 0.0001
from vins-fusion.
The calibration looks indeed good (although it doesn't seem to cover the full frame). And as this is a commercial camera the time synchronization should be fine as well, I would assume. So maybe the problem is something else. Did you double check all the transformations? Maybe some axis or tranformation got flipped or inverted.
from vins-fusion.
@lishanggui Your calibration result is pretty good. You can try increasing your IMU params inside config file. Like the following
acc_n: 0.1 gyr_n: 0.01 acc_w: 0.001 gyr_w: 0.0001
Thank you very much!Imu's noise is calibrated by imu_utils. According to the appendix of this article(J. L. Crassidis, “Sigma-point Kalman filtering for integrated GPS and
inertial navigation,” IEEE Trans. Aerosp. Electron. Syst., vol. 42, no. 2,
pp. 750–756, Apr. 2006.), the calibration results need to be converted into discrete values,
imu_utils results:
update_rate: 200.0 #Hz (for discretization of the val)
#Accelerometers
accelerometer_noise_density: 1.0281611399787572e-02 #Noise density (continuous-time)
accelerometer_random_walk: 2.1568297052184193e-04 #random walk
#Gyroscopes
gyroscope_noise_density: 2.9057508704048753e-03 #Noise density (continuous-time)
gyroscope_random_walk: 8.4607958318476167e-05 #random walk
so,
acc_n: 1.0281611399787572e-02*200^0.5 =0.145403943
gyr_n: 2.9057508704048753e-03*200^0.5=0.041093523
acc_w: 2.1568297052184193e-04/(200^0.5)=0.000015251
gyr_w:8.4607958318476167e-05 / (200^0.5)=0.000005983
At the same time, I also changed multiple sets of these parameters for experiments, including the values you provided, but the results have not improved!
from vins-fusion.
@iliis Thank you very much! I have checked the entire vins-fusion program and my configuration. I have not found where the problem is?And I'm sorry I don't understand where to check "Maybe some axis or tranformation got flipped or inverted". This is my entire config configuration file.
config.tar.gz
from vins-fusion.
@lishanggui
I see your config files. When you use Kalibr to calibrate your camera, you should use pinhole-equi
camera model.
from vins-fusion.
@daoran I used the pinhole-equi model to calibrate the camera(as shown in the link),and write into the configuration file. During the process of using VINS-FUSION, it also stereo better than stereo+imu. According to mynteye camera official documents, the use of pinhole-equi or omni-radtan models will not affect the results of vins-fusion (https://mynt-eye-s-sdk.readthedocs.io/zh_CN/2.3.6/src/slam/how_to_use_kalibr.html).
calibration result(pinhole-equi model):
report-cam-mynteyemynt_imu_camera_calib_202006030028_pinhole-equi.pdf
report-imucam-mynteyemynt_imu_camera_calib_202006030038_pinhole-equi.pdf
config(pinhole-equi model):
mynt_s1030_pinhole_equi_config.tar.gz
stereo result:
stereo+imu result:
from vins-fusion.
@lishanggui I don't know. It's weird, have you tried turning off estimate_extrinsic
?
from vins-fusion.
@daoran @iliis Yes, I tried, but the results did not improve, or worse. Have you done this experiment comparison? How are your stereo+imu results? What sensor did you use for the experiment?thank you for your help.
from vins-fusion.
@lishanggui I used 1030 and 2110 before, the results got from vo and vio were close. We can talk by email.
from vins-fusion.
@daoran thank you! I have sent email to you. looking forward to your reply!
from vins-fusion.
@lishanggui ,Hi,when you run VINS-Fusion camera+imu with mynteye, do you have wait for imu...
about 4-5 times each time an image is processed? like:
rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/mynteye/mynteye_stereo_imu_config.yaml
[ INFO] [1598978007.569093781]: init begins
config_file: /home/yu/catkin_ws/src/VINS-Fusion/config/mynteye/mynteye_stereo_imu_config.yaml
USE_IMU: 1
IMU_TOPIC: /mynteye/imu/data_raw
result path /home/tong/output//vio.csv
[ WARN] [1598978007.573738225]: Optimize extrinsic param around initial guess!
camera number 2
[ INFO] [1598978007.706211535]: Synchronized sensors, fix time offset: 0
[ INFO] [1598978007.706234998]: ROW: 480 COL: 752
exitrinsic cam 0
0.00428124 -0.99997 -0.0064529
0.999969 0.00423843 0.00663446
-0.00660691 -0.0064811 0.999957
5.25834e-05 -0.0421747 0.0192387
exitrinsic cam 1
0.00165252 -0.999985 -0.00520307
0.999949 0.00160076 0.00993615
-0.00992768 -0.00521922 0.999937
-0.00292519 0.0743791 0.0193027
set g 0 0 9.8
[ INFO] [1598978007.706408891]: reading paramerter of camera /home/mathieu/catkin_ws/src/VINS-Fusion/config/mynteye/left_mei.yaml
[ INFO] [1598978007.706540475]: reading paramerter of camera /home/mathieu/catkin_ws/src/VINS-Fusion/config/mynteye/right_mei.yaml
MULTIPLE_THREAD is 1
[ WARN] [1598978007.706631145]: waiting for image and imu...
init first imu pose
averge acc 9.505009 -1.207654 -1.477698
init R0
0.196851 0.620425 0.759159
0 -0.77431 0.632807
0.980433 -0.124568 -0.152423
wait for imu ...
[ WARN] [1598978009.177034355]: gyroscope bias initial calibration -0.000124802 -2.62956e-05 -0.000217221
[ INFO] [1598978009.224925882]: Initialization finish!
time: 1598978009.169869, t: -0.000665 -0.000257 -0.002229 q: -0.260500 0.728589 0.213583 0.596390
time: 1598978009.249849, t: -0.001597 -0.000752 -0.004902 q: -0.260719 0.728493 0.213739 0.596355
time: 1598978009.329839, t: -0.001694 -0.000810 -0.005014 q: -0.260702 0.728537 0.213725 0.596313
time: 1598978009.409819, t: -0.001755 -0.000876 -0.005074 q: -0.260691 0.728578 0.213717 0.596271
time: 1598978009.489799, t: -0.001771 -0.000903 -0.005098 q: -0.260679 0.728619 0.213709 0.596230
time: 1598978009.569779, t: -0.002233 0.001027 -0.006803 q: -0.261969 0.728236 0.214826 0.595730
wait for imu ...
wait for imu ...
wait for imu ...
wait for imu ...
wait for imu ...
time: 1598978009.649769, t: 0.000186 -0.000272 -0.003639 q: -0.264328 0.726812 0.217166 0.595578
time: 1598978009.729749, t: 0.000196 -0.001327 -0.002751 q: -0.266952 0.725523 0.219574 0.595097
wait for imu ...
wait for imu ...
wait for imu ...
wait for imu ...
wait for imu ...
wait for imu ...
wait for imu ...
time: 1598978009.809729, t: -0.003321 -0.005946 -0.003968 q: -0.255608 0.731011 0.209377 0.597033
time: 1598978009.889709, t: 0.009192 0.011846 -0.002178 q: -0.264213 0.726654 0.217948 0.595536
wait for imu ...
wait for imu ...
wait for imu ...
wait for imu ...
wait for imu ...
wait for imu ...
time: 1598978009.969699, t: 0.009783 0.012216 0.004889 q: -0.264305 0.726750 0.217985 0.595365
time: 1598978010.049679, t: 0.008858 0.014150 0.011544 q: -0.264964 0.726927 0.218214 0.594772
time: 1598978010.129659, t: 0.010310 0.013431 0.015126 q: -0.263210 0.727664 0.216651 0.595220
time: 1598978010.209639, t: 0.012167 0.016279 0.016885 q: -0.263577 0.727451 0.216909 0.595225
wait for imu ...
wait for imu ...
wait for imu ...
wait for imu ...
from vins-fusion.
@getupcurry Hi, I got the same problem "wait for imu", have you solved it?
from vins-fusion.
Hello,have you solved it? @Lsmartworld @lishanggui @Shengnan-Zhu
from vins-fusion.
Hello,have you solved it? @Lsmartworld @lishanggui @Shengnan-Zhu
from vins-fusion.
Related Issues (20)
- 边缘化因子的残差增长问题。 HOT 2
- Real-time test without rosbag dataset HOT 1
- GPS completely lost
- D435i wrong in rviz HOT 2
- Hello HOT 12
- How to align trajectory with google map
- There is no problem with Stereo, but Stereo + imu cannot estimate
- when i try the EuRoC Example,opencv error HOT 2
- Ubuntu 20.04 ceres error HOT 2
- issue about boost
- some problem about opencv HOT 2
- glog冲突 HOT 1
- How to implement mono version HOT 1
- In RVIZ the VIO trajectory is perpendicular to the gps route of global_fusion
- IMU Camera calibration
- Using oak-D pro W to do VIO with Vins-Fusion ROS pkg problem
- Could I use Gemini 335L camera to replace camera D435i ?
- 一些未定义的引用问题 HOT 1
- astra pro camera
- numerical unstable in preintegration HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vins-fusion.