ethz-asl / ethzasl_msf

MSF - Modular framework for multi sensor fusion based on an Extended Kalman Filter (EKF)
Other
982 stars 434 forks source link

msf State Initialization #169

Open bsbretly opened 6 years ago

bsbretly commented 6 years ago

Hello,

My setup is as follows: I have a downward facing camera/IMU, from which I run a VIO algorithm (ROVIOLI). I use msf to fuse my pose estimate from vision with my vehicles IMU (Pixhawk 1), in order to publish odometry at 50 Hz. I've notice a strange phenomenon with msf, and I was hoping someone here could help.

When my vehicle is in it's cardinal position (downward facing camera) the state transform seems to initialize randomly with respect to the world transform in yaw (ie the z axis of the transforms are aligned, however the x,y axis always initialize in a seemingly random manner). This, however, does not occur when my vehicle is in any other orientation (for example when my vehicle is oriented such that the camera faces upwards). In these cases (upward facing camera for example), my state transform always initializes with the same transform relative to the world transform.

I cloned the feature/initialization_services branch of this repo to try and do a service call that includes transform parameters when initializing msf, however it did not seem to solve the issue.

Any ideas into why this might be occurring?

Thanks in advance!

hamididari commented 5 years ago

hi when you initialize your slam with down looking camera x,y axis align with body frame . you can simply rotate msf output by yaw when you initialize the slam .