ethz-asl / rovio

Other
1.12k stars 506 forks source link

Question about covariance of odometry #179

Closed zabuton0807 closed 6 years ago

zabuton0807 commented 6 years ago

Hello. I have some questions about covariance of odometry. In my environment, if I move the sensor about 30m, the covariance of odometry becomes very large. And when the covariance becomes large, rovio can not extract the feature points, and finally the self position diverges. So I would like to ask the following questions.

  1. Dose covariance of odometry seek covariance of the position from the initial point?
  2. How can I deal with delta covariance when I want it?
  3. Is there anything I can do when the covariance becomes too large?

Could someone give me advice? Thank you.

zhuzunjie17 commented 6 years ago

The problem might caused by the inaccurate Init covariance parameters u'v set. Have you changed the reference parameters in rovio.yaml to your ZR300 parameters

zabuton0807 commented 6 years ago

Thank you for your comment. I will explain the situation in detail. I have finished parameter tuning, and it works without problems in a room. However, when traveling about 30m in a linear distance, the covariance continues to increase, and finally the self position diverges. In a circling course, it will work without problems even if it moves over 30m. Furthermore, I confirmed that the covariance become smaller as approaching the initial starting point. Based on the above situation, rovio seems to output the covariance of position from initial position. I am sorry that the question is not clear, so I will organize the questions again.

Is there anything I can do for the phenomenon that the covariance becomes too large?

If I want covariance from the previous sampling time, how can I handle it?

Could someone give me advice again? Thank you.

bloesch commented 6 years ago

That is an interesting observation and that could also be a Rovio error. One issues could also be that you do not excite certain directions in your state space sufficiently when moving in a straight line and thus you get the divergence -> could do a similar experiment where you move in a zigzag motion forward (maybe including some slight rotations).

Also, what covariances do grow exactly? is it only the one on position and yaw? if yes this should not affect the feature tracking in any way since it does not depend on position/yaw.

zabuton0807 commented 6 years ago

I'm sorry for replying late. thank you for your comment. Perhaps the question seemed to be bad. I will also investigate myself. Anyway, I will close this issue.

Thank you very much.

ruddradev commented 5 years ago

Hello,

I am new to Rovio and came across this question. I am trying to figure out what the covariance matrix values mean and why they are 6x6 in the published topic /rovio/posewithcovariancestamped.

Is there some literature I can read to find out exactly what they do?