-
Notifications
You must be signed in to change notification settings - Fork 438
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
Scale Estimation doesn't converge #148
Comments
Sadly, I haven't gotten it working with ORB_SLAM. Frustrated with the finickiness, I tried a very simple set-up by replacing the ORB_SLAM with the mocap system. Basically, mocap for pose and an IMU for the state prediction. Even with this I get weird results. I basically think my frame set-ups are wrong, but can't figure out where the problem is. Can you please post your frame setups? However, I am currently trying a Engel's way of scale estimation and the scale still keeps diverging. Hence, it might be something to do with the fact how ORB_SLAM keeps changing the scale or the inherent pose noise that's causing us so much grief. |
@bishwa9 I managed to get it to work with ORB-SLAM as an unscaled pose sensor. Just some pointers, you need to set/initialize the following carefully:
As you can see, you need to set reasonable values for the rotation parameters, otherwise the EKF won't converge. MSF does estimate inter-sensor calibration such as q_ic, but only if the initial values are reasonably correct. Also, even if you do all these things right, do understand that the EKF converges only with sufficient excitation of the system, so you'll need to move and rotate the system around. |
@yewzijian thank you for the update. Can you please elaborate on sufficient excitation? I realize there needs to be movement in 4 DOFs but how much? Magnitude of acceleration and angular velocity. So, if you move 1 meter, is it saying you have moved a meter? Additionally, one of the things I saw on the dataset is that no matter what value you initialize the parameters as, they converge to the correct values. For instance, I initialized the q_ic to be a random value, once movement started in the dataset, the state variable converged to Identity. |
@bishwa9 As long there's some acceleration and rotation in multiple axes for some time (maybe around 20-60s), that should be enough. You may want to try some of the Euroc MAV datasets. Anyway, I just tried initializing q_ic to a unreasonable value, and the scale couldn't converge. Couldn't replicate what you observed. |
@yewzijian Hi, can you share the initialization parameters of Euroc MAV datasets? |
@kongan Here's my relevant values for the inter sensor calibration, which are provided with the datasets themselves. The original IMU noise levels doesn't work well for me, so I doubled the values.
|
@yewzijian Thank you for your response. I use the ORB_SLAM2 and the parameter values that you give , but I get the warning message continuously, and the scale estimation doesn't converge. ORB_SLAM2 pose:
WAN message:[ WARN] [1482579671.208827019]: Fuzzy tracking triggered: 0.221361 limit: 0.1 Initialization parameters:data_playback: false #########IMU PARAMETERS####### pose_sensor/pose_noise_scale: 0.0 pose_sensor/init/q_ic/w: 0.712301 pose_sensor/init/p_ic/x: -0.0216401454975 pose_sensor/pose_absolute_measurements: true pose_sensor/pose_fixed_scale: false |
pose_sensor/pose_measurement_world_sensor should be true for ORB_SLAM. If the EKF still doesn't converge, and you're getting many fuzzy tracking warning, check that you initialised q_wv to a reasonable value (you'll have to figure that out yourself according to your use-case). Also, even though the EKF can estimate the scale, it's only robust when the scale is near it's true value. Try setting the scale correctly and see if it converges. |
Hi this is my launch file:
@hitzg |
Hello @simonlynen ,
I think I have the framework up and running (no fuzzy tracking or negative scale errors frequently). However, I can't get the scale estimate to converge. My initialization procedure:
These are my initialization parameters:
This is the scale. As you can see, it keeps increasing. The scale, by experimentation, is approximately at 0.1. No matter the initial scale, the scale always increases.
Please help,
Thank You,
Roy.
The text was updated successfully, but these errors were encountered: