-
Notifications
You must be signed in to change notification settings - Fork 788
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
D455 trouble with OpenVins addon, need help #1144
Comments
For the RealSense series, I have only used the D435i before. Since the D455 has been discontinued, and it is said that the color problem of its color camera affects outdoor applications, I have never tried it. But there is a d455 configuration in the config directory of OpenVINS, you can use this as a reference. |
Thanks, @borongyuan, for the help.
|
I think this is a good VIO for rtabmap so long as ORB_SLAM3 integration is disabled with the IMU part. |
This is a bit unusual. Data timestamps should generally increase monotonically. I guess this may be related to the IMU output method. The accelerometer and gyroscope in some IMUs will work at different frequencies and output data separately. They need to be set to the same frequency or interpolated to the same frequency to output together.
Current default noise configuration is for OAK camera (BMI270 IMU). So for other devices you need to adjust according to their allan variance. I also have disp-based ZUPT enabled by default. You can also enable imu-based ZUPT. This helps handle extreme situations at zero velocity. If you use mono cameras, IR should be turned off. Because it produces a non-static texture, it will obviously mislead VIO. It doesn't matter if you use a color camera because the infrared light will be filtered.
use_stereo option only affects the tracker part. It adds stereo constraints to features. But if extrinsic is not accurate enough, it may lead to reduced accuracy. So I turn this off most of the time. Someone suggested to use XYZ representation when use_stereo is enabled, and inverse depth representation when it is disabled. Enabling online parameter calibration may help, but degenerate motion needs to be avoided (such as in-vehicle use). The official recommendation is to enable it for handheld use. I haven't added this part of the params yet. OpenVINS uses a small number of features. The default is 50, and the accuracy will not improve much when it is increased to more than 100. So I didn't add its features to SensorData. I think superpoint won't be of much help to the front-end, it's more useful to the back-end. |
After recent updates, I recorded a new demo. |
Make sure the IR emitter is disabled if you are using IR cameras, otherwise the random IR pattern will confuse VO. |
Hi,@borongyuan |
What is used here is SuperPoint running on OAK, which we added in this PR. This may be slightly different from SuperPoint running with PyTorch. There is no special setting, the video is one shot without any editing. I think it is mainly the NNDR strategy that enables good matching for different keypoint configurations.
If we add keypoints to sensor data, both VO and loop closure can choose whether to use it or not. I only use the SuperPoint provided by the camera for loop closure.
OAK’s computing power is only enough to run SuperPoint. |
May I ask you a question about the versions of RTAB-Map and OpenVINS? Are you using the latest versions of RTAB-Map and OpenVINS? If not, could you please tell me which versions you are using? I want to use RTAB-Map + OpenVINS with ZED2, Thank you very much!! |
Tested: Latest version of RTAB-Map + OpenVINS v2.7 |
HELLO! |
@tulingcheng86 This issue is related to D435i + open_vins and rtabmap. For general D435i usage with rtabmap see this tutorial, in particular the "RealSense D435i camera (IR-Depth)" example. |
Hi, @borongyuan. I notice you have given a useful commit #1107. I think the VIO may applicable for rtabmap, but I try D455 with your default parameters and can not run odometry properly, start with :
[init]: not enough feats to compute disp: 0,0 < 15
[init]: not enough feats to compute disp: 0,0 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
[init]: not enough feats to compute disp: 0,61 < 15
Propagator::select_imu_readings(): No IMU measurements to propagate with (0 of 2). IMU-CAMERA are likely messed up!!!
[ZUPT]: There are no IMU data to check for zero velocity with!!
For a while and then failed with Propagator::select_imu_readings(): No IMU measurements to propagate with (0 of 2). IMU-CAMERA are likely messed up!!!
[ZUPT]: There are no IMU data to check for zero velocity with!!
Any advice?
I build with latest https://github.com/rpng/open_vins/tree/4534a2f32d4763bdc8c95121b3292c7423e12aca with some small modifications to work with OpenCV 4.8. and build with rtabmap standalone with the latest commit.
The text was updated successfully, but these errors were encountered: